<?php
/**
 * SEOブロック生成用クラス
 * @package Apm
 * @author
 * @since 2011/02/21
 */
class Apm_Seo {

	// DBコネクション
	private static $_db = null;

	/**
	 * パターン別にSEOブロックを生成
	 * @access  public static
	 * @param array &$data
	 * @param array $params パラメータ
	 * @param string $SrhKbn 検索区分
	 * @param array $meta_data メタデータ
	 * @return array SEOブロックデータ
	 */
	public static function getSeoBlock(&$data, $params, $SrhKbn, $meta_data)
	{
		$seo_block = array();
		$title = '';
		$read  = '';

		// パターンを取得
		$Pattern = Apm_Bukkenurl::getParamPattern($params, $SrhKbn);

		if (empty($Pattern)) return $seo_block;

		// メタデータを生成
		if (empty($meta_data)) {
			$meta_data = Apm_Bukkenurl::setCommonMeta($SrhKbn, $params);
		}

		// DB接続
		self::$_db = Apm_Util::getDbConnection();

		// パターン別にSEOブロックを生成する
		switch ($Pattern)
		{
			// 住居形態TOP
			case 'type':
				// 人気のエリアから探す
				Apm_Seo::generatePopJyusyoBlock($data,$params,$meta_data);
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,10);
				// こだわりから探す
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
			break;

			// エリアCat1
			case 'chiiki_1':
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
			break;

			// エリアCat2
			case 'chiiki_2':
				// 人気の駅で絞り込む
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5,1);
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 人気の沿線で絞り込む
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5,1);
			break;

			// エリアCat2.5
			case 'chiiki_2.5':
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 人気の駅で絞り込む
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5,1);
				// 人気の沿線で絞り込む
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5,1);
			break;

			// エリアCat3
			case 'chiiki_3':
			if (Apm_Config_Search::RENEW_2012) {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
			} else {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				if (Apm_Config_Search::RENEW_2012) {$data['CrossKodawari']['SINGLE'] = '1';}	// １行表示
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 周辺のエリアから探す
				Apm_Seo::generateAroundAreaBlock($data, $params, $Pattern, $meta_data);
				// ブランク
				if (!Apm_Config_Search::RENEW_2012) {$data['blank'] = array(); }
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

			// エリアCat3（沿線・駅Cat3）
			case 'station_3':
			if (Apm_Config_Search::RENEW_2012) {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
			} else {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 周辺の駅から探す
				Apm_Seo::generateAroundEkiBlock($data, $params, $Pattern, $meta_data);
				// 沿線から探す
				apm_seo::generateEnsenBlock($data, $params, $Pattern, $meta_data);
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

			// エリアCat4
			case 'chiiki_4':
			if (Apm_Config_Search::RENEW_2012) {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
			} else {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				if (Apm_Config_Search::RENEW_2012) {$data['CrossKodawari']['SINGLE'] = '1';}	// １行表示
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 周辺のエリアから探す
				Apm_Seo::generateAroundAreaBlock($data, $params, $Pattern, $meta_data);
				// ブランク
				if (!Apm_Config_Search::RENEW_2012) {$data['blank'] = array(); }
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

			// こだわりTOP
			case 'kodawari':
				// なし
			break;

			// こだわりCat1
			case 'kodawari_1':
				// 人気のエリアから探す
				Apm_Seo::generatePopJyusyoBlock($data,$params, $meta_data);
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,10);
				// 住居形態から探す
				Apm_Seo::generateTypeBlock($data,$params,$meta_data);
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				$data['OtherKodawari']['MORE_NAME'] = '';	// こだわり全件表示
				//// 人気の沿線から探す 導線から外れるので削除 2013/03/13 Delete
				//Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,10);
			break;

			// 沿線・駅TOP
			case 'station_0':
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,10);
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,10);
			break;

			// 沿線・駅Cat1
			case 'station_1':
				// 人気の駅から探す（UIテンプレートは別だけど・・・）
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,10);
			break;

			// 沿線・駅Cat2
			case 'station_2':
			case 'station_2.5':
				// 沿線のエリアから探す（UIテンプレートは別だけど・・・）
				Apm_Seo::generateEnsenAreaBlock($data, $params, $Pattern, $meta_data);
				// 他の沿線から探す（UIテンプレートは別だけど・・・）
				Apm_Seo::generateOtherEnsenBlock($data, $params, $Pattern, $meta_data);
			break;

			// 住居形態×エリアCat1
			case 'x2_1':
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
			break;

			// 住居形態×エリアCat2
			case 'x2_2':
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
				// 人気の駅で絞り込む
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5,1);
				// 人気の沿線から探す 導線から外れるので削除 2013/03/13 Delete
				//Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			break;

			// 住居形態×エリアCat2.5
			case 'x2_2.5':
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
				// 人気の駅で絞り込む
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5,1);
				// 人気の沿線から探す 導線から外れるので削除 2013/03/13 Delete
				//Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			break;

			// 住居形態×エリアCat3
			case 'x2_3':
			if (Apm_Config_Search::RENEW_2012) {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
			} else {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				if (Apm_Config_Search::RENEW_2012) {$data['CrossKodawari']['SINGLE'] = '1';}	// １行表示
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
				// 周辺のエリアから探す
				Apm_Seo::generateAroundAreaBlock($data, $params, $Pattern, $meta_data);
				// ブランク
				if (!Apm_Config_Search::RENEW_2012) {$data['blank'] = array(); }
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

			// 住居形態×エリアCat3（沿線・駅Cat3）
			case 'x2s':
			if (Apm_Config_Search::RENEW_2012) {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
			} else {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
				// 周辺の駅から探す
				Apm_Seo::generateAroundEkiBlock($data, $params, $Pattern, $meta_data);
				// 沿線から探す
				apm_seo::generateEnsenBlock($data, $params, $Pattern, $meta_data);
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

			// 住居形態×エリアCat4
			case 'x2_4':
			if (Apm_Config_Search::RENEW_2012) {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
			} else {
				// こだわりで絞り込む
				Apm_Seo::generateKodawariBlock($data,$params,$meta_data,1);
				if (Apm_Config_Search::RENEW_2012) {$data['CrossKodawari']['SINGLE'] = '1';}	// １行表示
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
				// 周辺のエリアから探す
				Apm_Seo::generateAroundAreaBlock($data, $params, $Pattern, $meta_data);
				// ブランク
				if (!Apm_Config_Search::RENEW_2012) {$data['blank'] = array(); }
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

			// 住居形態×こだわりCat1
			case 'x3':
				// 人気のエリアから探す
				Apm_Seo::generatePopJyusyoBlock($data,$params, $meta_data);
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				$data['OtherKodawari']['MORE_NAME'] = '';	// こだわり全件表示
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
			break;

			// エリアCat1×こだわりCat1
			case 'x4_1':
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
			break;

			// エリアCat2×こだわりCat1
			case 'x4_2':
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 人気の駅で絞り込む
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5,1);
				// 人気の沿線から探す 導線から外れるので削除 2013/03/13 Delete
				//Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			break;

			// エリアCat2.5×こだわりCat1
			case 'x4_2.5':
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 人気の駅で絞り込む
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5,1);
				// 人気の沿線から探す 導線から外れるので削除 2013/03/13 Delete
				//Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			break;

			// エリアCat3×こだわりCat1
			case 'x4_3':
			if (Apm_Config_Search::RENEW_2012) {
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
			} else {
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 周辺のエリアから探す
				Apm_Seo::generateAroundAreaBlock($data, $params, $Pattern, $meta_data);
				// ブランク
				$data['blank'] = array();
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

			// エリアCat3（沿線・駅Cat3）×こだわりCat1
			case 'x4s':
			if (Apm_Config_Search::RENEW_2012) {
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
			} else {
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 周辺の駅から探す
				Apm_Seo::generateAroundEkiBlock($data, $params, $Pattern, $meta_data);
				// 沿線から探す
				apm_seo::generateEnsenBlock($data, $params, $Pattern, $meta_data);
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

			// エリアCat4×こだわりCat1
			case 'x4_4':
			if (Apm_Config_Search::RENEW_2012) {
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
			} else {
				// 住居形態で絞り込む
				Apm_Seo::generateTypeBlock($data,$params,$meta_data,1);
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 周辺のエリアから探す
				Apm_Seo::generateAroundAreaBlock($data, $params, $Pattern, $meta_data);
				// ブランク
				$data['blank'] = array();
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

			// 住居形態×エリアCat1×こだわりCat1
			case 'x5_1':
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
			break;

			// 住居形態×エリアCat2×こだわりCat1
			case 'x5_2':
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
				// 人気の駅で絞り込む
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5,1);
				// 人気の沿線から探す 導線から外れるので削除 2013/03/13 Delete
				//Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			break;

			// 住居形態×エリアCat2.5×こだわりCat1
			case 'x5_2.5':
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
				// 人気の駅で絞り込む
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5,1);
				// 人気の沿線から探す 導線から外れるので削除 2013/03/13 Delete
				//Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			break;

			// 住居形態×エリアCat3×こだわりCat1
			case 'x5_3':
			if (Apm_Config_Search::RENEW_2012) {
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
			} else {
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
				// 周辺のエリアから探す
				Apm_Seo::generateAroundAreaBlock($data, $params, $Pattern, $meta_data);
				// ブランク
				$data['blank'] = array();
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

			// 住居形態×エリアCat3（沿線・駅Cat3）×こだわりCat1
			case 'x5s':
			if (Apm_Config_Search::RENEW_2012) {
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
			} else {
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
				// 周辺の駅から探す
				Apm_Seo::generateAroundEkiBlock($data, $params, $Pattern, $meta_data);
				// 沿線から探す
				apm_seo::generateEnsenBlock($data, $params, $Pattern, $meta_data);
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

			// 住居形態×エリアCat4×こだわりCat1
			case 'x5_4':
			if (Apm_Config_Search::RENEW_2012) {
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
			} else {
				// 他のこだわりから探す
				Apm_Seo::generateOtherKodawariBlock($data, $params, $Pattern, $meta_data);
				// 他の住居形態から探す
				Apm_Seo::generateOtherTypeBlock($data, $params, $Pattern, $meta_data);
				// 周辺のエリアから探す
				Apm_Seo::generateAroundAreaBlock($data, $params, $Pattern, $meta_data);
				// ブランク
				$data['blank'] = array();
				// 人気の駅から探す
				Apm_Seo::generatePopEkiBlock($data,$params,$meta_data,5);
				// 人気の沿線から探す
				Apm_Seo::generatePopEnsenBlock($data,$params,$meta_data,5);
			}
			break;

		}

		// DB切断
		if (!empty(self::$_db)) {
			self::$_db->closeConnection();
		}

		return $seo_block;
	}

	/**
	 * アパログ ※各コントローラーから直接呼ばれる
	 * @access  public
	 * @param array $data
	 * @param array $params パラメータ
	 * @return
	 */
	public function generateApalogBlock(&$data, $params, $researchData=array())
	{
		// 法人サイトの場合は表示しない 2012/02/28 add
		if (!empty($params['ComId'])) return;
		
		$apalogList = array();
		
		// 沿線コードが存在し、駅コードが存在しない場合
		if (!empty($researchData['RailCd']) && empty($researchData['StCd']))
		{
			// 沿線に属する都道府県リストを取得
			$areaDatas = Apm_Seo::getEnsenArea($params);
			foreach ($areaDatas as $value)
			{
				$apalogData = array();
				$apalogData['PREF_CD'] = $value['M04_TODOUFUKEN_CD'];
				$apalogData['PREF_NM'] = $value['M43_TODOUFUKEN'];
				$apalogList[] = $apalogData;
			}
		}
		// 都道府県コードが存在する場合
		else if (!empty($researchData['PrefCd']))
		{
			// 都道府県リストを取得
			foreach ($researchData['PrefCd'] as $key => $value)
			{
				$apalogData = array();
				$apalogData['PREF_CD'] = $key;
				$apalogData['PREF_NM'] = $value['PREF_NAME'];
				$apalogList[] = $apalogData;
			}
		}
		// 都道府県コードが存在する場合（パラメータ）
		else if (!empty($params['PrefCd']))
		{
			// 都道府県リストを取得
			if (is_array($params['PrefCd'])) {
				foreach ($params['PrefCd'] as $key => $value)
				{
					$apalogData = array();
					$apalogData['PREF_CD'] = $value;
					$apalogData['PREF_NM'] = Apm_Config_Shop::$PREF_LIST[$value];
					$apalogList[] = $apalogData;
				}
			} else {
					$apalogData = array();
					$apalogData['PREF_CD'] = $params['PrefCd'];
					$apalogData['PREF_NM'] = Apm_Config_Shop::$PREF_LIST[$params['PrefCd']];
					$apalogList[] = $apalogData;
			}
		}
		// エリアコードが存在する場合
		else if (!empty($params['AreaCd']))
		{
			$loader = new Zend_Application_Module_Autoloader(array(
				'namespace' => 'Search',
				'basePath' => APPLICATION_PATH . '/modules/search',
			));
			// エリアに属する都道府県リストを取得
			$model_area = new Search_Model_Selareasearch();
			$areaDatas  = $model_area->getAreaListByAreaCd($params);
			foreach ($areaDatas as $value)
			{
				$apalogData = array();
				$apalogData['PREF_CD'] = $value['M01_TODOUFUKEN_CD'];
				$apalogData['PREF_NM'] = $value['M01_TODOUFUKEN'];
				$apalogList[] = $apalogData;
			}
		}
		// その他
		else
		{
			// なし（TOPのみ）
		}

		// アパログURL生成
		$data['apalog'] = array();
		if (empty($apalogList))
		{
			// 全国TOPへのリンク
			$apalogData = array();
			$apalogData['APALOG_NAME'] = 'アパログ トップ';
			$apalogData['APALOG_URL']  = Apm_Config_Shop::$APALOG_TOP_URL;
			$data['apalog'][] = $apalogData;
		}
		else
		{
			// 都道府県アパログページへのリンク
			foreach ($apalogList as $value)
			{
				$apalogData = array();
				$apalogData['APALOG_NAME'] = 'アパログ '.$value['PREF_NM'];
				$apalogData['APALOG_URL']  = Apm_Config_Shop::$PREF_URL_LIST[$value['PREF_CD']].'category/'.$value['PREF_CD'];
				$data['apalog'][] = $apalogData;
			}
		}
	}

	/**
	 * エリアから探す ※Rstobiから直接呼ばれる
	 * @access  public
	 * @param array $data
	 * @param array $params パラメータ
	 * @param array $meta_data メタデータ
	 * @return
	 */
	public function generateAreaBlock(&$data, $params, $meta_data)
	{
		// 町名取得
    	$loader = new Zend_Application_Module_Autoloader(array(
			'namespace' => 'Search',
			'basePath' => APPLICATION_PATH . '/modules/search',
		));
		$model_selcyo = new Search_Model_Selcyo();
		// 件数を取得
		$data['town_count'] = $model_selcyo->getMoreCyoDataCount($params);
		$data['seltown'] = array();
		// 36件以上ならmoreリンク作成
		if ($data['town_count']['CNT'] > 36)
		{
			$params['CityMore'] = '1';
			$pattern = Apm_Bukkenurl::getParamPattern($params, Apm_Config_Search::SRHKBN_JYUSYO);
			$url = Apm_Bukkenurl::generateUrlByParameters($params, $pattern, '3.5');
			$data['SEO_SELCYO_MORE'] = $url;
			// 30件まで取得
			$data['seltown'] = $model_selcyo->getMoreCyoData($params, 30);
		}
		else
		{
			// 全件取得
			$data['seltown'] = $model_selcyo->getCyoData($params);
		}
		// コンバート
		$model_selcyo->convertCyoData($data);
		// 静的URL挿入
		Apm_Bukkenurl::generateSearchStaticUrl($params, $data['Mapping'], Apm_Config_Search::SRHKBN_JYUSYO);

		// ブロック見出し
		$data['SEO_SELCYO_TITLE'] = $meta_data['page_title'].'をエリアで絞り込む';
		// リード文
		$data['SEO_SELCYO_TEXT']  = Apm_Config_Search::SEOSTR_CITYSTR.'{の}'.Apm_Config_Search::ALIAS_KODAWARI.'{な}'
									.Apm_Config_Search::ALIAS_TYPE.'情報をエリアで絞り込みたい方はこちらから。';
		Apm_Bukkenurl::convertSeoText($data['SEO_SELCYO_TEXT'], $meta_data);
	}

	/**
	 * 注目のエリアから探す ※Rstobiから直接呼ばれる
	 * @access  public
	 * @param array $data
	 * @param array $params パラメータ
	 * @param array $meta_data メタデータ
	 * @return
	 */
	public function generateNoticeAreaBlock(&$data, $params, $meta_data)
	{
		// ダミー町名セット
		$params['TownCd'] = '99';
		// パターンを取得
		$Pattern = Apm_Bukkenurl::getParamPattern($params, Apm_Config_Search::SRHKBN_JYUSYO);
		if (empty($Pattern)) return;

		// 町名取得
		$data_list = Apm_Seo::getNoticeArea($params, 10);
		foreach($data_list as $value)
		{
			// パラメータをセット
			$params['TownCd'] = $value['CHOUMEI_CD'];
			// 静的URL生成
			$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern);
			// 返却データへ格納
			$data['SEO_NOTICE_CYO']['DATA'][] = array('DISP_NAME'=>$value['CHOUMEI'], 'STATIC_URL'=>$url);
		}
		// ブロック見出し
/*
		if (strpos($Pattern,'chiiki') !== false) {
			$data['SEO_NOTICE_CYO']['TITLE'] = Apm_Config_Search::ALIAS_AREA.'{ }'.'注目のエリアから探す';
			$data['SEO_NOTICE_CYO']['TEXT']  = Apm_Config_Search::SEOSTR_AREA.'を注目のエリアで絞り込みたい方はこちらから。';
		} else {
			$data['SEO_NOTICE_CYO']['TITLE'] = Apm_Config_Search::ALIAS_AREA.'{ }'.Apm_Config_Search::ALIAS_KODAWARI.'{な}'
											  .Apm_Config_Search::SEOSTR_TYPE.'{を}注目のエリアから探す';
			$data['SEO_NOTICE_CYO']['TEXT']  = Apm_Config_Search::SEOSTR_AREA.'{の}'.Apm_Config_Search::ALIAS_KODAWARI.'{な}'
											  .Apm_Config_Search::ALIAS_TYPE.'情報を注目のエリアで絞り込みたい方はこちらから。';
		}
*/
		if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_TYPE, $meta_data)) {
			$data['SEO_NOTICE_CYO']['TITLE'] = Apm_Config_Search::ALIAS_AREA.'{ }'.Apm_Config_Search::ALIAS_KODAWARI.'{な}'
											  .Apm_Config_Search::SEOSTR_TYPE.'{を}注目のエリアから探す';
			$data['SEO_NOTICE_CYO']['TEXT']  = Apm_Config_Search::SEOSTR_AREA.'{の}'.Apm_Config_Search::ALIAS_KODAWARI.'{な}'
											  .Apm_Config_Search::ALIAS_TYPE.'情報を注目のエリアで絞り込みたい方はこちらから。';
		} else {
			$data['SEO_NOTICE_CYO']['TITLE'] = Apm_Config_Search::ALIAS_AREA.'{ }'
											  .Apm_Config_Search::ALIAS_KODAWARI.'{ }賃貸を注目のエリアから探す';
			$data['SEO_NOTICE_CYO']['TEXT']  = Apm_Config_Search::SEOSTR_AREA.'{の}'.Apm_Config_Search::ALIAS_KODAWARI.'{な}'
											  .Apm_Config_Search::ALIAS_TYPE.'情報を注目のエリアで絞り込みたい方はこちらから。';
		}
		Apm_Bukkenurl::convertSeoText($data['SEO_NOTICE_CYO']['TITLE'], $meta_data);
		Apm_Bukkenurl::convertSeoText($data['SEO_NOTICE_CYO']['TEXT'], $meta_data);
	}

	/**
	 * 他の住居形態から探す
	 * @access  public static
	 * @param array $data
	 * @param array $params パラメータ
	 * @param string $Pattern 静的URLパターン
	 * @param array $meta_data メタデータ
	 * @return
	 */
	public static function generateOtherTypeBlock(&$data, $params, $Pattern, $meta_data)
	{
		$title = '';
		$read  = '';
		$blockDatas = array();

		// 現在地の住居形態
		$tatemonoTypeCd = $params['TatemonoTypeCd'];
		// 住居形態が取得できない場合はNG
		if (empty($tatemonoTypeCd)) return;
		// 現在地のこだわり
		$kodawariId = $params['KodawariId'];

		// 全ての住居形態を取得しながらURL生成
		for($key=1; $key<=3; $key++)
		{
			// NGチェック
			if (!Apm_Seo::checkTypeXKodawari($key, $kodawariId)) continue;
			
			// 現在地の住居形態であればURLを生成しない
			if ($tatemonoTypeCd != $key) {
				// 住居形態TOPのみパラメータがタイプ名称
				if ($Pattern == 'type') {
					$params['TatemonoType'] = array_search($key, Apm_Config_Search::$TATEMONO_SYUBETU_ID_LIST);
					if ($params['TatemonoType'] === false) continue;
				} else {
					$params['TatemonoTypeCd'] = $key;
				}
				// 静的URL生成
				$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern);
			} else {
				$url = '';
			}

			$val = Apm_Config_Search::$TATEMONO_SYUBETU_NAME_LIST[$key];
//			$val = str_replace('賃貸一戸建て・借家・テラスハウス','借家・一戸建て',$val);
			//$val = str_replace('戸建て・テラスハウス','借家・一戸建て',$val);

			// 返却データへ格納
			$blockDatas[] = array('DISP_NAME'=>$val, 'STATIC_URL'=>$url);
		}
		if (empty($blockDatas)) {
			$data['OtherType'] = array();
			return;
		}
/*
		foreach (Apm_Config_Search::$TATEMONO_SYUBETU_NAME_LIST as $key => $val)
		{
			// 現在地の住居形態であればURLを生成しない
			if ($tatemonoTypeCd != $key) {
				// 住居形態TOPのみパラメータがタイプ名称
				if ($Pattern == 'type') {
					$params['TatemonoType'] = array_search($key, Apm_Config_Search::$TATEMONO_SYUBETU_ID_LIST);
					if ($params['TatemonoType'] === false) continue;
				} else {
					$params['TatemonoTypeCd'] = $key;
				}
				// 静的URL生成
				$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern);
			} else {
				$url = '';
			}

//			$val = str_replace('賃貸一戸建て・借家・テラスハウス','借家・一戸建て', $val);
			$val = str_replace('戸建て・テラスハウス','借家・一戸建て', $val);

			// 返却データへ格納
			$blockDatas[] = array('DISP_NAME'=>$val, 'STATIC_URL'=>$url);
		}
*/

		if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_KODAWARI, $meta_data)) {
			// ブロック見出し
			$title = Apm_Config_Search::ALIAS_AREA.'{ }'.Apm_Config_Search::ALIAS_KODAWARI.'{を}'.Apm_Config_Search::SEOSTR_TYPE.'以外の住居形態から探す';
			Apm_Bukkenurl::convertSeoText($title, $meta_data);
			// リード文
			$read  = Apm_Config_Search::SEOSTR_AREA.'{の}'.Apm_Config_Search::ALIAS_KODAWARI.'{の賃貸物件情報を}'
					.Apm_Config_Search::SEOSTR_TYPE.'以外の住居形態から探したい方はこちらから。';
		} else {
			// ブロック見出し
			$title = $meta_data['page_title'] . '以外の住居形態から探す';
			// リード文
			$read  = Apm_Config_Search::SEOSTR_AREA.'{の}'
					.Apm_Config_Search::SEOSTR_TYPE.'以外の住居形態から賃貸物件情報を探したい方はこちらから。';
		}
		Apm_Bukkenurl::convertSeoText($read, $meta_data);

		$data['OtherType'] = array('TITLE'=>$title, 'TEXT'=>$read, 'DATA'=>$blockDatas);
	}

	/**
	 * 他のこだわりから探す
	 * @access  public static
	 * @param array &$data
	 * @param array $params パラメータ
	 * @param string $Pattern 静的URLパターン
	 * @param array $meta_data メタデータ
	 * @return
	 */
	public static function generateOtherKodawariBlock(&$data, $params, $Pattern, $meta_data)
	{
		$title = '';
		$read  = '';
		$blockDatas = array();

		// 現在地のこだわり
		$kodawariId = $params['KodawariId'];
		// こだわりが取得できない場合はNG
		if (empty($kodawariId)) return;
		// 現在地の住居形態
		$tatemonoTypeCd = $params['TatemonoTypeCd'];

		// こだわりデータを取得
		$data_list = Apm_Seo::getOtherKodawari($params);
		foreach($data_list as $value)
		{
			// NGチェック
			if (!Apm_Seo::checkTypeXKodawari($tatemonoTypeCd, $value['KODAWARI_CD'])) continue;
			
			$name = Apm_Config_Search::$KODAWARI_ID_STR_LIST[$value['KODAWARI_CD']];
			// マンション重複対応
			if (!empty($tatemonoTypeCd)) {
				$name = str_replace('マンション', '', $name);
			}
			
			// 現在地のこだわりであればURLを生成しない
			if ($kodawariId != $value['KODAWARI_CD']) {
				// パラメータをセット
				$params['KodawariId'] = $value['KODAWARI_CD'];
				// 静的URL生成
				$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern);
			} else {
				$url = '';
			}
			// 返却データへ格納
			$blockDatas[] = array('DISP_NAME'=>$name, 'STATIC_URL'=>$url);
		}
		if (empty($blockDatas)) {
			$data['OtherKodawari'] = array();
			return;
		}

		// ブロック見出し
		if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_TYPE, $meta_data)) {
			$title = Apm_Config_Search::ALIAS_AREA.'{ }'.Apm_Config_Search::SEOSTR_TYPE.'を'.Apm_Config_Search::ALIAS_KODAWARI.'以外のこだわりから探す';
		} else {
			$title = Apm_Config_Search::ALIAS_AREA.'{ 賃貸を}'.Apm_Config_Search::SEOSTR_KODAWARI.'以外のこだわりから探す';
		}
		Apm_Bukkenurl::convertSeoText($title, $meta_data);
		// リード文
		if (strpos($Pattern,'kodawari') !== false) {
			$read  = Apm_Config_Search::SEOSTR_KODAWARI.'以外のこだわりから賃貸物件情報を探したい方はこちらから。';
		} else {
			$read  = Apm_Config_Search::SEOSTR_AREA.'{の}'.Apm_Config_Search::ALIAS_TYPE.'{情報を}'
					.Apm_Config_Search::ALIAS_KODAWARI.'以外のこだわりから探したい方はこちらから。';
		}
		Apm_Bukkenurl::convertSeoText($read, $meta_data);

		$data['OtherKodawari'] = array('TITLE'=>$title, 'TEXT'=>$read, 'DATA'=>$blockDatas);

		if (count($blockDatas) > 15) {
			$data['OtherKodawari']['MORE_URL']  = '';
			$data['OtherKodawari']['MORE_NAME'] = 'もっと見る';
			$data['OtherKodawari']['MORE_CNT']  = 15;
		}
	}

	/**
	 * 他の沿線から探す
	 * @access  public static
	 * @param array &$data
	 * @param array $params パラメータ
	 * @param string $Pattern 静的URLパターン
	 * @param array $meta_data メタデータ
	 * @return
	 */
	public static function generateOtherEnsenBlock(&$data, $params, $Pattern, $meta_data)
	{
		$title = '';
		$read  = '';
		$blockDatas = array();

		// 現在地の沿線
		$railCd = $params['RailCd'];
		// 沿線が取得できない場合はNG
		if (empty($railCd)) return;
		// 沿線CDが複数の場合、とりあえずNG
		if (is_array($railCd) && count($railCd) > 1) {
			return;
		} else if (is_array($railCd)) {
			$railCd = $railCd[0];
		}
		// 都道府県が取得できない場合はNG
		if (empty($params['PrefCd'])) return;

		// 周囲の沿線を取得する
		$data_list = Apm_Seo::getOtherEnsen($params, 10);
		foreach($data_list as $value)
		{
			// 現在地の沿線であればURLを生成しない
			if ($railCd != $value['M02_ENSEN_CD']) {
				// パラメータをセット
				$params['RailCd'] = $value['M02_ENSEN_CD'];
				// 静的URL生成
				$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern);
			} else {
				$url = '';
			}
			// 返却データへ格納
			$blockDatas[] = array('DISP_NAME'=>$value['M02_ENSEN_NAME'], 'STATIC_URL'=>$url);
		}

		// ブロック見出し
		$title = Apm_Config_Search::ALIAS_ENSEN.'以外の沿線から探す';
		Apm_Bukkenurl::convertSeoText($title, $meta_data);
		// リード文
		$read  = Apm_Config_Search::ALIAS_ENSEN.'以外の沿線から'.Apm_Config_Search::ALIAS_TYPE.'情報を探したい方はこちらから。';
		Apm_Bukkenurl::convertSeoText($read, $meta_data);

		$data['OtherEnsen'] = array('TITLE'=>$title, 'TEXT'=>$read, 'DATA'=>$blockDatas);
	}

	/**
	 * 周辺の駅から探す
	 * @access  public static
	 * @param array &$data
	 * @param array $params パラメータ
	 * @param string $Pattern 静的URLパターン
	 * @param array $meta_data メタデータ
	 * @return
	 */
	public static function generateAroundEkiBlock(&$data, $params, $Pattern, $meta_data)
	{
		$title = '';
		$read  = '';
		$blockDatas = array();

		// 現在地の沿線
		$railCd = $params['RailCd'];
		// 沿線が取得できない場合はNG
		if (empty($railCd)) return;
		// 沿線CDが複数の場合、とりあえずNG
		if (is_array($railCd) && count($railCd) > 1) {
			return;
		} else if (is_array($railCd)) {
			$railCd = $railCd[0];
		}
		// 現在地の駅
		$stCd = $params['StCd'];
		// 駅が取得できない場合はNG
		if (empty($stCd)) return;
		// 駅CDが複数の場合、とりあえずNG
		if (is_array($stCd) && count($stCd) > 1) {
			return;
		} else if (is_array($stCd)) {
			$stCd = $stCd[0];
		}

		// 周囲の駅を取得する
		$data_list = Apm_Seo::getAroundEki($params, 5);
		foreach($data_list as $value)
		{
			// 現在地の駅であればURLを生成しない
			if ($stCd != $value['M03_EKI_CD']) {
				// パラメータをセット
				$params['StCd'] = $value['M03_EKI_CD'];
				// 静的URL生成
				$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern);
			} else {
				$url = '';
			}
			// 返却データへ格納
			$blockDatas[] = array('DISP_NAME'=>$value['M03_EKI_NAME'], 'STATIC_URL'=>$url);
		}

		// ブロック見出し
		if (strpos($Pattern,'station') !== false) {
			$title = Apm_Config_Search::ALIAS_EKISTR.'周辺の駅から探す';
		} else {
			if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_TYPE, $meta_data)) {
				$title = Apm_Config_Search::ALIAS_EKISTR.'周辺の駅から'.Apm_Config_Search::ALIAS_KODAWARI.'{ }'.Apm_Config_Search::SEOSTR_TYPE.'を探す';
			} else {
				$title = Apm_Config_Search::ALIAS_EKISTR.'周辺の駅から'.Apm_Config_Search::SEOSTR_KODAWARI.'{ 賃貸}'.'を探す';
			}
		}
		// リード文
		$read  = Apm_Config_Search::SEOSTR_EKISTR.'周辺の駅から'
				.Apm_Config_Search::ALIAS_KODAWARI.'{な}'.Apm_Config_Search::ALIAS_TYPE.'情報を探したい方はこちらから。';
		Apm_Bukkenurl::convertSeoText($title, $meta_data);
		Apm_Bukkenurl::convertSeoText($read, $meta_data);

		$data['AroundEki'] = array('TITLE'=>$title, 'TEXT'=>$read, 'DATA'=>$blockDatas);
	}

	/**
	 * 周辺のエリアから探す
	 * @access  public static
	 * @param array &$data
	 * @param array $params パラメータ
	 * @param string $Pattern 静的URLパターン
	 * @param array $meta_data メタデータ
	 * @return
	 */
	public static function generateAroundAreaBlock(&$data, $params, $Pattern, $meta_data)
	{
		$title = '';
		$read  = '';
		$blockDatas = array();

		// パターンからカテゴリを取り出す [0]:pattern [1]:category
		$arrPattern = explode('_', $Pattern);
		// カテゴリ別に現在地を取得
		$curCd = '';
		if ($arrPattern[1] == '3') {
			// 市区町村
			$curCd = $params['CityCd'];
		} else if ($arrPattern[1] == '4') {
			// 町
			$curCd = $params['TownCd'];
		}
		// 取得できない場合はNG
		if (empty($curCd)) return;
		// 複数の場合、とりあえずNG
		if (is_array($curCd) && count($curCd) > 1) {
			return;
		} else if (is_array($curCd)) {
			$curCd = $curCd[0];
		}

		// 周辺のエリアを検索する
		$data_list = Apm_Seo::getAroundArea($params, $arrPattern[1], 5);
		foreach($data_list as $value)
		{
			// 現在地のエリアであればURLを生成しない
			if ($curCd != $value['AREA_CD']) {
				// パラメータをセット
				if ($arrPattern[1] == '3') {
					// 市区町村
					$params['CityCd'] = $value['AREA_CD'];
				} else if ($arrPattern[1] == '4') {
					// 町
					$params['TownCd'] = $value['AREA_CD'];
				}
				// 静的URL生成
				$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern);
			} else {
				$url = '';
			}
			// 返却データへ格納
			$blockDatas[] = array('DISP_NAME'=>$value['AREA_NM'], 'STATIC_URL'=>$url);
		}

		// ブロック見出し
		if (strpos($Pattern,'chiiki') !== false) {
			$title = Apm_Config_Search::ALIAS_AREA.'周辺のエリアから探す';
		} else {
			if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_TYPE, $meta_data)) {
				$title = Apm_Config_Search::ALIAS_AREA.'周辺のエリアから'.Apm_Config_Search::ALIAS_KODAWARI.'{ }'.Apm_Config_Search::SEOSTR_TYPE.'を探す';
			} else {
				$title = Apm_Config_Search::ALIAS_AREA.'周辺のエリアから'.Apm_Config_Search::SEOSTR_KODAWARI.'{ 賃貸}'.'を探す';
			}
		}
		// リード文
		$read  = Apm_Config_Search::SEOSTR_AREA.'周辺の'
				.Apm_Config_Search::ALIAS_KODAWARI.'{な}'.Apm_Config_Search::ALIAS_TYPE.'情報を探したい方はこちらから。';
		Apm_Bukkenurl::convertSeoText($title, $meta_data);
		Apm_Bukkenurl::convertSeoText($read, $meta_data);

		$data['AroundArea'] = array('TITLE'=>$title, 'TEXT'=>$read, 'DATA'=>$blockDatas);
	}

	/**
	* 人気のエリアから探す
	*
	* @access	public
	* @param	array
	* @param	array
	* @param	array
	*/
	public static function generatePopJyusyoBlock(&$data, $params,$meta_data, $searchKbn=0)
	{
		// 作業配列
		$temp = array();
		$temp['TatemonoTypeCd'] = $params['TatemonoTypeCd'];
		$temp['KodawariId']     = $params['KodawariId'];
		// エリアコードがなければ仮設定
		if(empty($params['AreaCd']))$params['AreaCd'] = 1;
		// 都道府県コードがなければ仮設定
		if(empty($params['PrefCd']))$params['PrefCd'][0] = '00';
		// 人気のエリア取得
		$temp['selcity'] = self::getPopJyusyo($params);
		// エリアデータコンバート
		self::convertPopJyusyoData($temp);

		// 検索パラメータにより、静的URL生成
		//Apm_Bukkenurl::generateSearchStaticUrl($params, $temp['Mapping'], Apm_Config_Search::SRHKBN_JYUSYO);

		// ブロック見出し
		$title = $meta_data['page_title'] . 'を人気のエリアから探す';
		// リード文
		$read  = Apm_Config_Search::ALIAS_KODAWARI.'{な}'.Apm_Config_Search::ALIAS_TYPE.'情報を人気のエリアから探したい方はこちらから。';
		Apm_Bukkenurl::convertSeoText($read, $meta_data);

		$data['CrossJyusyo'] = array('TITLE'=>$title, 'TEXT'=>$read, 'DATA'=>$temp['DATA']);
		// クロスカテゴリ検索ブロックデータへ加工
		//self::convertTplJyusyoData($data['CrossJyusyo'],$params,$temp);
	}

	/**
	* 人気の駅から探す/で絞り込む
	*
	* @access	public
	* @param	array
	* @param	array
	* @param	array
	*/
	public static function generatePopEkiBlock(&$data, $params, $meta_data, $cnt, $searchKbn=0)
	{
		// 作業配列
		$temp = array();

		if(empty($params['PrefCd'])){
			$params['PrefCd'][0] = '00';
		}else{
			$temp2 = array();
			$temp2['Category'] = '1';
			// 都道府県ローマ字取得
			$temp2['PrefName'] = Apm_Config_Search::$TODOUFUKEN_NAME_CODE_LIST[$params['PrefCd'][0]];
			// 静的URL作成
			$temp['MoreEnsen'] = Apm_Bukkenurl::generateUrlByParametersStation($temp2);
			$temp['MoreName']  = Apm_Config_Search::ALIAS_PREFSTR.'の沿線・駅をもっと見る';
			Apm_Bukkenurl::convertSeoText($temp['MoreName'], $meta_data);
		}

		// 沿線コードがなければ仮設定
		if(empty($params['RailCd']))$params['RailCd'] = 1;
		// 駅コードがなければ仮設定
		if(empty($params['StCd']))$params['StCd'] = 1;
		// エリアコードがなければ仮設定
		if(empty($params['AreaCd']))$params['AreaCd'] = 1;

		// 都道府県別人気の駅取得
		$temp['seleki'] = self::getPopEki($params, $cnt);
		// 駅データコンバート
		self::convertPopEkiData($temp);

		// 検索パラメータにより、静的URL生成
		Apm_Bukkenurl::generateSearchStaticUrl($params, $temp['Mapping'], Apm_Config_Search::SRHKBN_ENSENEKI);

		// ブロック見出し
		$temp['TITLE'] = '';
		if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_PREFSTR, $meta_data)
		 || Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_KODAWARI, $meta_data)
		 || Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_TYPE, $meta_data)) {
		 	if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_TYPE, $meta_data)) {
				$temp['TITLE'] = Apm_Config_Search::ALIAS_PREFSTR.'{ }'.Apm_Config_Search::ALIAS_KODAWARI.'{ }'.Apm_Config_Search::SEOSTR_TYPE.'を';
			} else {
				$temp['TITLE'] = Apm_Config_Search::ALIAS_PREFSTR.'{ }'.Apm_Config_Search::SEOSTR_KODAWARI.'を';
			}
		}
		// リード文
		$temp['TEXT'] = Apm_Config_Search::SEOSTR_PREFSTR.'{の}'.Apm_Config_Search::ALIAS_KODAWARI.'{な}'.Apm_Config_Search::ALIAS_TYPE.'情報を';
		
		if ($searchKbn == 0) {
			$temp['TITLE'] .= '人気の駅から探す';
			$temp['TEXT']  .= '人気の駅から探したい方はこちらから。';
		} else {
			$temp['TITLE'] .= '人気の駅で絞りこむ';
			$temp['TEXT']  .= '人気の駅で絞り込みたい方はこちらから。';
		}
		Apm_Bukkenurl::convertSeoText($temp['TITLE'], $meta_data);
		Apm_Bukkenurl::convertSeoText($temp['TEXT'], $meta_data);

		// もっと見る
		$data['CrossEki']['MORE_URL']  = $temp['MoreEnsen'];
		$data['CrossEki']['MORE_NAME'] = $temp['MoreName'];
		$data['CrossEki']['MORE_CNT']  = 10;

		// クロスカテゴリ検索ブロックデータへ加工
		self::convertTplEkiData($data['CrossEki'],$params,$temp);
	}

	/**
	* 人気の沿線から探す/で絞り込む
	*
	* @access	public
	* @param	array
	* @param	array
	* @param	array
	*/
	public static function generatePopEnsenBlock(&$data, $params, $meta_data, $cnt, $searchKbn=0)
	{

		// 作業配列
		$temp = array();

		// 駅CD削除
		unset($params['StCd']);
		// 沿線CD削除
		unset($params['RailCd']);

		// 都道府県別人気の沿線取得
		$temp['selensen'] = self::getPopEnsen($params, $cnt);
		// 沿線データコンバート
		self::convertPopEnsenData($temp);

		// 検索パラメータにより、静的URL生成
		Apm_Bukkenurl::generateSearchStaticUrl($params, $temp['Mapping'], Apm_Config_Search::SRHKBN_ENSENEKI);

		if(!empty($params['PrefCd']))
		{
			$temp2 = array();
			$temp2['Category'] = '1';
			// 都道府県ローマ字取得
			$temp2['PrefName'] = Apm_Config_Search::$TODOUFUKEN_NAME_CODE_LIST[$params['PrefCd'][0]];
			// 静的URL作成
			$temp['MoreEnsen'] = Apm_Bukkenurl::generateUrlByParametersStation($temp2);
			$temp['MoreName']  = Apm_Config_Search::ALIAS_PREFSTR.'の沿線・駅をもっと見る';
			Apm_Bukkenurl::convertSeoText($temp['MoreName'], $meta_data);
		}

		// ブロック見出し
		$temp['TITLE'] = '';
		if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_PREFSTR, $meta_data)) {
			$temp['TITLE'] = Apm_Config_Search::ALIAS_PREFSTR.'{ 賃貸を}';
		}
		// リード文
		$temp['TEXT'] = Apm_Config_Search::SEOSTR_PREFSTR.'{の}'.'賃貸物件情報を';
		if ($searchKbn == 0) {
			$temp['TITLE'] .= '人気の沿線から探す';
			$temp['TEXT']  .= '人気の沿線から探したい方はこちらから。';
		} else {
			$temp['TITLE'] .= '人気の沿線で絞り込む';
			$temp['TEXT']  .= '人気の沿線で絞り込みたい方はこちらから。';
		}
		Apm_Bukkenurl::convertSeoText($temp['TITLE'], $meta_data);
		Apm_Bukkenurl::convertSeoText($temp['TEXT'] , $meta_data);

		// もっと見る
		$data['CrossEnsen']['MORE_URL']  = $temp['MoreEnsen'];
		$data['CrossEnsen']['MORE_NAME'] = $temp['MoreName'];
		$data['CrossEnsen']['MORE_CNT']  = 10;

		// クロスカテゴリ検索ブロックデータへ加工
		self::convertTplEnsenData($data['CrossEnsen'],$params,$temp);
	}
	/**
	* 住居形態から探す/で絞り込む
	*
	* @access	public
	* @param	array
	* @param	array
	* @param	array
	*/
	public static function generateTypeBlock(&$data, $params, $meta_data, $searchKbn=0)
	{
		$temp = array();

		// 指定都市ローマ字
		if(!empty($params['SiteitosiCd']))
		{
			$params['SITEITOSI_ROMAN'] = Apm_Config_Search::$SITEITOSI_ROMAN_LIST[$params['SiteitosiCd'][0]];
		}

		// 建物タイプコードを仮設定
		$params['TatemonoTypeCd'] = 1;

		// 検索パラメータにより、静的URL生成を行うパターンを振り分ける
		$pattern = Apm_Bukkenurl::getParamPattern($params, Apm_Config_Search::SRHKBN_JYUKYOKEITAI);

		// エリアローマ字取得
		$areaName = Apm_Bukkenurl::getAreaName($params);

		// 現在地のこだわり
		$kodawariId = $params['KodawariId'];

		// 住居形態毎に静的URL作成
		for($i=1;$i<=3;$i++)
		{
			// NGチェック
			if (!Apm_Seo::checkTypeXKodawari($i, $kodawariId)) continue;
			
			$params['TatemonoTypeCd'] = $i;
			$type_name = Apm_Config_Search::$TATEMONO_SYUBETU_NAME_LIST[$i];
			$type_id = Apm_Config_Search::$TATEMONO_SYUBETU_CD_LIST[$i];
//			$type_name = str_replace('賃貸一戸建て・借家・テラスハウス','借家・一戸建て',$type_name);
			//$type_name = str_replace('戸建て・テラスハウス','借家・一戸建て',$type_name);
			
			// 静的URL生成
			$temp['Mapping'][$type_name]['STATIC_URL'] = Apm_Bukkenurl::generateUrlByParameters($params, $pattern);
			$temp['Mapping'][$type_name]['TYPE_ID'] = $type_id;
//			error_log('[' . $i . ']=' . $temp['Mapping'][$type_name]['STATIC_URL']);
		}
		if (empty($temp)) {
			$data['CrossType'] = array();
			return;
		}

		// ブロック見出し
		$temp['TITLE'] = $meta_data['page_title'].'を';
		// リード文
		$temp['TEXT']  = Apm_Config_Search::SEOSTR_AREA.'{の}'.Apm_Config_Search::SEOSTR_KODAWARI.'{な}'.'賃貸物件情報を';
		if ($searchKbn == 0) {
			$temp['TITLE'] .= '住居形態から探す';
			$temp['TEXT']  .= '住居形態から探したい方はこちらから。';
		} else {
			$temp['TITLE'] .= '住居形態で絞り込む';
			$temp['TEXT']  .= '住居形態で絞り込みたい方はこちらから。';
		}
		Apm_Bukkenurl::convertSeoText($temp['TEXT'], $meta_data);

		// クロスカテゴリ検索ブロックデータへ加工
		self::convertTplJyukyoData($data['CrossType'],$params,$temp);
	}
	/**
	* こだわり条件から探す/で絞り込む
	*
	* @access	public
	* @param	array
	* @param	array
	* @param	array
	*/
	public static function generateKodawariBlock(&$data, $params, $meta_data, $searchKbn=0)
	{
		
		/*
		 * 新しいロジック→優先20個		
		 */
		//$data['CrossKodawari'] = array();
		//$data['CrossKodawari']['DATA'] = self::getNinkiKodawari($params);
		
		
		
		$temp = array();

		// 指定都市ローマ字
		if(!empty($params['SiteitosiCd']))
		{
			$params['SITEITOSI_ROMAN'] = Apm_Config_Search::$SITEITOSI_ROMAN_LIST[$params['SiteitosiCd'][0]];
		}

		// 都道府県別人気のこだわり条件取得
		$temp['kodawari'] = self::getPopKodawari($params);

		if(!empty($temp['kodawari']))
		{
			// こだわりIDを仮設定
			$params['KodawariId'] = 1;
			// エリアローマ字取得
			$areaName = Apm_Bukkenurl::getAreaName($params);

			// 検索パラメータにより、静的URL生成を行うパターンを振り分ける
			$pattern = Apm_Bukkenurl::getParamPattern($params, Apm_Config_Search::SRHKBN_KODAWARI);

			// 現在地の住居形態
			$tatemonoTypeCd = $params['TatemonoTypeCd'];

			// こだわり条件毎に静的URL作成
			foreach($temp['kodawari'] as $order => $val)
			{
				// NGチェック
				if (!Apm_Seo::checkTypeXKodawari($tatemonoTypeCd, $val['KODAWARI_CD'])) continue;
				
				$params['KodawariId'] = $val['KODAWARI_CD'];
				$kodawri_name = Apm_Config_Search::$KODAWARI_ID_STR_LIST[$val['KODAWARI_CD']];
				
				//マッチングパラメータ
				$kodawari_val = Apm_Config_Search::$KODAWARI_ID_PRM_LIST[$val['KODAWARI_CD']]['prm'];
				$mapping = '';
				foreach($kodawari_val as $value){
					foreach($value as $key=>$keyval){
						if($key == 'param') $mapping .= $keyval.'-';						
						else if($key == 'value')$mapping .= $keyval.'|';
					}
				}
				$mapping = substr($mapping, 0, -1);
				
				//マッチングパラメータ
				
				// マンション重複対応
				if (!empty($tatemonoTypeCd)) {
					$kodawri_name = str_replace('マンション', '', $kodawri_name);
				}

				// 静的URL生成
				$temp['Mapping'][$kodawri_name]['STATIC_URL'] = Apm_Bukkenurl::generateUrlByParameters($params, $pattern);
				$temp['Mapping'][$kodawri_name]['KODAWARI_CD'] = $val['KODAWARI_CD'];
				$temp['Mapping'][$kodawri_name]['KODAWARI_MAPPING'] = $mapping;
			}
			if (empty($temp['Mapping'])) {
				$data['CrossKodawari'] = array();
				return;
			}

			// ブロック見出し
			// リード文
			$temp['TEXT']  = Apm_Config_Search::SEOSTR_AREA.'{の}'.Apm_Config_Search::ALIAS_TYPE.'情報を';
			if ($searchKbn == 0) {
				$temp['TITLE'] .= 'こだわりから'.$meta_data['page_title'].'を探す';
				$temp['TEXT']  .= 'こだわりから探したい方はこちらから。';
			} else {
				$temp['TITLE'] .= $meta_data['page_title'].'をこだわりで絞り込む';
				$temp['TEXT']  .= 'こだわりで絞り込みたい方はこちらから。';
			}
			Apm_Bukkenurl::convertSeoText($temp['TEXT'], $meta_data);

			// クロスカテゴリ検索ブロックデータへ加工
			self::convertTplKodawariData($data['CrossKodawari'],$params,$temp);
		}
		
	}

	/**
	 * 沿線から探す
	 *  沿線にクロスカテゴリは存在しない為、station2.5へのリンクのみとする
	 *
	 * @access	public
	 * @param	array
	 * @param	array
	 */
	public static function generateEnsenBlock(&$data, $params, $Pattern, $meta_data)
	{
		// 作業配列
		$title = '';
		$read  = '';
		$blockDatas = array();

		// 現在の駅
		$stCd = $params['StCd'];
		// 駅が取得できない場合はNG
		if (empty($stCd)) return;
		// 駅CDが複数の場合、とりあえずNG
		if (is_array($stCd) && count($stCd) > 1) {
			return;
		} else if (is_array($stCd)) {
			$stCd = $stCd[0];
		}

		// 所属の沿線を取得する
		$data_list = Apm_Seo::getEnsen($params);

		foreach($data_list as $value)
		{
				if ($railCd != $value['M03_ENSEN_CD']) {
					// パラメータをセット
					$params['RailCd'] = $value['M03_ENSEN_CD'];
					// 静的URL生成
					$url = Apm_Bukkenurl::generateUrlByParameters($params, 'station', '2.5');
					//$url = Apm_Bukkenurl::generateSearchStaticUrl($params, $temp['Mapping'], Apm_Config_Search::SRHKBN_ENSENEKI);
				} else {
					$url = '';
				}
							// 返却データへ格納
			$blockDatas[] = array('DISP_NAME'=>$value['M03_ENSEN_NAME'], 'STATIC_URL'=>$url);
		}

		// ブロック見出し
		$title = Apm_Config_Search::ALIAS_EKISTR.'がある沿線から探す';
		Apm_Bukkenurl::convertSeoText($title, $meta_data);
		// リード文
		$read  = Apm_Config_Search::SEOSTR_EKISTR.'がある沿線から賃貸物件情報を探したい方はこちらから。';
		Apm_Bukkenurl::convertSeoText($read, $meta_data);

		$data['ParentEnsen'] = array('TITLE'=>$title, 'TEXT'=>$read, 'DATA'=>$blockDatas);

	}

	 /**
	 * 沿線のエリアから探す
	 * @access  public static
	 * @param array &$data
	 * @param array $params パラメータ
	 * @param string $Pattern 静的URLパターン
	 * @param array $meta_data メタデータ
	 * @return
	 */
	public static function generateEnsenAreaBlock(&$data, $params, $Pattern, $meta_data)
	{
		$title = '';
		$read  = '';
		$blockDatas = array();

		// 現在地の沿線
		$railCd = $params['RailCd'];

		// 沿線が取得できない場合はNG
		if (empty($railCd)) return $blockDatas;
		// 沿線CDが複数の場合、とりあえずNG
		if (is_array($railCd) && count($railCd) > 1) {
			return $blockDatas;
		} else {
			$railCd = $railCd[0];
		}

		// 全都道府県エリア名取得
		$model_area = new Search_Model_Selareasearch();
		$area_list = $model_area->getAreaListByPrefCdKey();

		// 沿線のエリア・都道府県名を取得する
		$areaDatas = Apm_Seo::getEnsenArea($params);
		foreach($areaDatas as  $value)
		{
			// パラメータをセット
			// URL形式
			$params['Category'] = '2';	// URL:'/chiiki/AreaName/PrefName/'

			// エリア名取得
			$params['AreaName'] = $area_list[$value['M04_TODOUFUKEN_CD']];

			// 都道府県名取得
			$pref = $value['M43_TODOUFUKEN'];

			// 都道府県ローマ字取得
			$params['PrefName'] = Apm_Config_Search::$TODOUFUKEN_NAME_CODE_LIST[$value['M04_TODOUFUKEN_CD']];

			// 静的URL生成
			$url = Apm_Bukkenurl::generateUrlByParametersChiiki($params);

			// 返却データへ格納
			$blockDatas[] = array('DISP_NAME'=>$pref, 'STATIC_URL'=>$url);

		}

		// ブロック見出し
		$title = Apm_Config_Search::ALIAS_ENSEN.'沿線のエリアから探す';
		Apm_Bukkenurl::convertSeoText($title, $meta_data);
		// リード文
		$read  = Apm_Config_Search::ALIAS_ENSEN.'沿線のエリアから賃貸物件情報を探したい方はこちらから。';
		Apm_Bukkenurl::convertSeoText($read, $meta_data);

		$data['EnsenArea'] = array('TITLE'=>$title, 'TEXT'=>$read, 'DATA'=>$blockDatas);

	}

	/**
	* 住居形態とこだわりの組み合わせが可能かチェックする
	*
	* @access	private static
	* @param	string $TatemonoTypeCd
	* @param	stgring $KodawariId
	* @return	boolean
	*/
	private static function checkTypeXKodawari($TatemonoTypeCd, $KodawariId)
	{
		// NGリストをループ
		foreach (Apm_Config_Search::$TYPE_X_KODAWARI_NG as $ng)
		{
			if ($TatemonoTypeCd == $ng['type'] && $KodawariId == $ng['kodawari']) {
				return false;
			}
		}
		return true;
	}

	/**
	* 人気のエリア一覧データを静的URL生成用に再構成
	*
	* @access	public
	* @param	array ※参照渡し
	* @return	void
	*/
	public function convertPopJyusyoData(&$data)
	{
		$data['DATA'] = array();

		foreach ($data['selcity'] as $cityData)
		{
			$param = array();
			$param['AreaCd']   = $cityData['AREA_CD'];
			$param['AreaName'] = $cityData['AREA_ROMAN_NAME'];
			$param['PrefCd']   = $cityData['TODOUFUKEN_CD'];
			$param['PrefName'] = Apm_Config_Search::$TODOUFUKEN_NAME_CODE_LIST[$cityData['TODOUFUKEN_CD']];
			$param['CityCd']   = $cityData['SHIKUCHOUSON_CD'];
			$param['SiteitosiCd']    = $cityData['SITEITOSI_CD'];
			$param['SiteitosiName']  = $cityData['SITEITOSI_ROMAN'];
			$param['TatemonoTypeCd'] = $data['TatemonoTypeCd'];
			$param['KodawariId']     = $data['KodawariId'];

			//$param['SHIKUCHOUSON'] = $cityData['SHIKUCHOUSON_NAME'];
			//$param['OrderNo']      = $cityData['M97_ORDER_NO'];

			// パターン取得
			$pattern = Apm_Bukkenurl::getParamPattern($param, Apm_Config_Search::SRHKBN_JYUSYO);

			// 静的URL取得
			$url = Apm_Bukkenurl::generateUrlByParameters($param, $pattern);

			// セット
			$data['DATA'][] = array(
				'STATIC_URL'=> $url,
				'DISP_NAME'	=> $cityData['SHIKUCHOUSON_NAME']
			);

/*
			$todoufukenCd = $cityData['TODOUFUKEN_CD'];

			// 都道府県が異なる場合
			if (array_key_exists($todoufukenCd, $data['Mapping']) == false)
			{
				$data['Mapping']["$todoufukenCd"]['TODOUFUKEN_NAME']   = $cityData['TODOUFUKEN'];
				$data['Mapping']["$todoufukenCd"]['SHIKUCHOUSON_DATA'] = array();
				$data['Mapping']["$todoufukenCd"]['SITEITOSI_DATA'] = array();

			}

			$data['Mapping']["$todoufukenCd"]['SHIKUCHOUSON_DATA'][] = array(
				'SHIKUCHOUSON_CD'		=> $cityData['SHIKUCHOUSON_CD'],
				'SHIKUCHOUSON'			=> $cityData['SHIKUCHOUSON_NAME']
			);
*/
		}
	}

	/**
	* 人気の駅名一覧データを静的URL生成用に再構成
	*
	* @access	public
	* @param	array ※参照渡し
	* @return	void
	*/
	public function convertPopEkiData(&$data)
	{
		$data['Mapping'] = array();

		foreach ($data['seleki'] as $stationData)
		{
			$ensenCd = $stationData['ENSEN_CD'];

			// 沿線が異なる場合
			if (array_key_exists($ensenCd, $data['Mapping']) == false)
			{
				$data['Mapping'][$ensenCd]['ENSEN_NAME'] = $stationData['ENSEN_NAME'];
				$data['Mapping'][$ensenCd][] = array();
			}

			$data['Mapping'][$ensenCd]['EKI_DATA'][] = array(
			'EKI_NAME'			=> $stationData['EKI_NAME'],
			'EKI_CD'			=> $stationData['EKI_CD'],
			'TODOUFUKEN_CD'		=> $stationData['TODOUFUKEN_CD'],
			);
		}
	}

	/**
	* 人気の沿線一覧データを静的URL生成用に再構成
	*
	* @access	public
	* @param	array ※参照渡し
	* @return	void
	*/
	public function convertPopEnsenData(&$data)
	{
		$data['Mapping'] = array();

		$indexNo = 0;
        $beforePrefCd = null;
        $beforeEnsenKbn = null;
		$ensenKbnName = null;

		foreach ($data['selensen'] as  $railData)
		{
			$ensenkubun = $railData['M02_ENSEN_KUBUN'];
		    $prefCd = $railData['TODOUFUKEN_CD'];

            // 都道府県が異なる場合
            if ($beforePrefCd != $prefCd)
            {
            	$data['Mapping']["$prefCd"]['PrefName'] = $railData['TODOUFUKEN_NAME'];
                $data['Mapping']["$prefCd"]['EnsenKbnList'] = array();
                $beforeEnsenKbn = null;
            }

			// 沿線区分が異なる場合
			if ($beforeEnsenKbn != $ensenkubun)
			{
				switch($railData['M02_ENSEN_KUBUN']) {
					case 1:
						$ensenKbnName = "JR線";
						break;
					case 2:
						$ensenKbnName = "私鉄";
						break;
					case 3:
						$ensenKbnName = "地下鉄";
						break;
					case 4:
						$ensenKbnName = "その他";
						break;
					case 5:
						$ensenKbnName = "バス";
						break;
					case 9:
						$ensenKbnName = "その他の交通機関";
						break;
				}

				$data['Mapping']["$prefCd"]['EnsenKbnList'][] = array(
                    'EnsenKbn'     => $ensenkubun,
            		'EnsenKbnName' => $ensenKbnName,
                    'RailList'     => array()
                );
                $indexNo = count($data['Mapping']["$prefCd"]['EnsenKbnList']) - 1;
			}

			$data['Mapping']["$prefCd"]['EnsenKbnList'][$indexNo]['RailList'][] = $railData;

			$beforePrefCd = $prefCd;
			$beforeEnsenKbn = $ensenkubun;
		}
	}

	/**
	* 人気のエリアブロックデータ作成
	*
	* @access	public
	* @param	array ※参照渡し
	* @param	array
	* @param	array
	* @return	void
	*/
	public function convertTplJyusyoData(&$data,$params,$jyusyodata)
	{
		$data['TITLE'] = $jyusyodata['TITLE'];
		$data['TEXT']  = $jyusyodata['TEXT'];

		foreach ($jyusyodata['Mapping'] as $pref)
		{
			foreach ($pref['SHIKUCHOUSON_DATA'] as $sikuchoson)
			{
				$data['DATA'][] = array(
					'STATIC_URL'=> $sikuchoson['STATIC_URL'],
					'DISP_NAME'	=> $sikuchoson['SHIKUCHOUSON']
				);
			}
		}
	}

	/**
	* 人気の駅名ブロックデータ作成
	*
	* @access	public
	* @param	array ※参照渡し
	* @param	array
	* @param	array
	* @return	void
	*/
	public function convertTplEkiData(&$data,$params,$ekidata)
	{
		$data['TITLE'] = $ekidata['TITLE'];
		$data['TEXT']  = $ekidata['TEXT'];

		//if(!empty($params['PrefCd']) && $params['PrefCd'][0] != '00')
		//{
		//	$data['MORE_URL'] = $ekidata['MoreEnsen'];
		//	// 都道府県名取得
		//	$model_area = new Search_Model_Selareasearch();
		//	$area = $model_area->getPrefNameByPrefCd($params);
		//	$data['MORE_NAME'] = $area[0]['M01_TODOUFUKEN'].'の沿線・駅をもっと見る';
		//	$data['MORE_CNT']  = 10;
		//}

		foreach ($ekidata['Mapping'] as $v)
		{
			foreach ($v['EKI_DATA'] as $stationData)
			{
				$data['DATA'][] = array(
					'STATIC_URL'=> $stationData['STATIC_URL'],
					'DISP_NAME'	=> $stationData['EKI_NAME']
				);
			}
		}
	}

	/**
	* 人気の沿線ブロックデータ作成
	*
	* @access	public
	* @param	array ※参照渡し
	* @param	array
	* @param	array
	* @return	void
	*/
	public function convertTplEnsenData(&$data,$params,$ensendata)
	{
		$data['TITLE'] = $ensendata['TITLE'];
		$data['TEXT']  = $ensendata['TEXT'];

		//if(!empty($params['PrefCd']) && $params['PrefCd'][0] != '00')
		//{
		//	$data['MORE_URL'] = $ensendata['MoreEnsen'];
		//	// 都道府県名取得
		//	$model_area = new Search_Model_Selareasearch();
		//	$area = $model_area->getPrefNameByPrefCd($params);
		//	$data['MORE_NAME'] = $area[0]['M01_TODOUFUKEN'].'の沿線・駅をもっと見る';
		//	$data['MORE_CNT']  = 10;
		//}

		foreach ($ensendata['Mapping'] as $pref)
		{
			foreach ($pref['EnsenKbnList'] as $ensenKbn)
			{
				foreach($ensenKbn['RailList'] as $rail)
				{
					$data['DATA'][] = array(
						'STATIC_URL'=> $rail['STATIC_URL'],
						'DISP_NAME'	=> $rail['T57_ENSEN_SHIKUCHOUSON_NAME']
					);
				}
			}
		}
	}

	/**
	* 住居形態ブロック作成
	*
	* @access	public
	* @param	array ※参照渡し
	* @param	array
	* @param	array
	* @return	void
	*/
	public function convertTplJyukyoData(&$data,$params,$jyukyodata)
	{
		$data['TITLE'] = $jyukyodata['TITLE'];
		$data['TEXT']  = $jyukyodata['TEXT'];

		foreach ($jyukyodata['Mapping'] as $key => $value)
		{
			$data['DATA'][] = array(
				'STATIC_URL'=> $value['STATIC_URL'],
				'DISP_NAME'	=> $key,
				'TYPE_ID' => $value['TYPE_ID']
			);
		}
	}

	/**
	* こだわりブロック作成
	*
	* @access	public
	* @param	array ※参照渡し
	* @param	array
	* @param	array
	* @return	void
	*/
	public function convertTplKodawariData(&$data,$params,$kodawaridata)
	{
		$data['TITLE'] = $kodawaridata['TITLE'];
		$data['TEXT']  = $kodawaridata['TEXT'];

		if (count($kodawaridata['Mapping']) > 15) {
			$data['MORE_URL'] = '';
			$data['MORE_NAME'] = 'もっと見る';
			$data['MORE_CNT']  = 15;
		}

		foreach ($kodawaridata['Mapping'] as $key => $value)
		{
			$data['DATA'][] = array(
				'STATIC_URL'=> $value['STATIC_URL'],
				'DISP_NAME'	=> $key,
			    'KODAWARI_CD' => $value['KODAWARI_CD'],
				'KODAWARI_MAPPING' => $value['KODAWARI_MAPPING']
			);
		}
	}

	/**
	 * 沿線データ取得
	 *
	 * @access	public
	 * @param	array
	 * @return	array
	 */
	public function getEnsen($params)
	{
		$db_params = array();
		$sql = Apm_Seo::generateEnsenByEkiCdSql($params, $db_params);
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}
	/**
	* 人気のエリア一覧データ取得
	*
	* @access	public
	* @param	array
	* @return	array
	*/
	public function getPopJyusyo($params)
	{
		$db_params = array();
		// 都道府県CDがない場合、全国を示す「00」を設定
		if(empty($params['PrefCd']))$params['PrefCd'][0] = '00';
		if(empty($params['TatemonoTypeCd']))$params['TatemonoTypeCd'] = '0';
		if(empty($params['KodawariId']))$params['KodawariId'] = '0';

		$sql = self::generatePopJyusyoSql($params,$db_params);
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}

	/**
	 * 人気の街名一覧データ取得
	 *
	 * @access	public
	 * @param	array
	 * @return	array
	 */
	public function getPopChou($params, $cnt=5)
	{
	    $db_params = array();
	    $sql = self::generatePopChouSql($params,$db_params,$cnt);
	    return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}
	
	/**
	* 人気の駅名一覧データ取得
	*
	* @access	public
	* @param	array
	* @return	array
	*/
	public function getPopEki($params, $cnt=5)
	{
		$db_params = array();
		$sql = self::generatePopEkiSql($params,$db_params,$cnt);
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}

	/**
	* 人気の沿線一覧データ取得
	*
	* @access	public
	* @param	array
	* @return	array
	*/
	public function getPopEnsen($params, $cnt=5)
	{
		$db_params = array();
		// 都道府県CDがない場合、全国を示す「00」を設定
		if(empty($params['PrefCd']))$params['PrefCd'][0] = '00';

		$sql = self::generatePopEnsenSql($params,$db_params,$cnt);
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}
	/**
	* 人気のこだわり一覧データ取得
	*
	* @access	public
	* @param	array
	* @return	array
	*/
	public function getPopKodawari($params)
	{
		$db_params = array();
		// 都道府県CDがない場合、全国を示す「00」を設定
		if(empty($params['PrefCd']))$params['PrefCd'][0] = '00';

		$sql = self::generatePopKodawariSql($params,$db_params);
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}
	
	/**
	 * 人気のこだわり一覧データ取得
	 *
	 * @access	public
	 * @param	array
	 * @return	array
	 */
	public function getNinkiKodawari($params)
	{
		$db_params = array();
		$sql = self::generateTop20Kodawari();
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}
	
	/**
	* 他のこだわりデータ取得
	*
	* @access	public
	* @param	array
	* @return	array
	*/
	public function getOtherKodawari($params)
	{
		$db_params = array();
		$sql = Apm_Seo::generateOtherKodawariSql($params, $db_params, $cnt);
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}
	/**
	* 他の沿線データ取得
	*
	* @access	public
	* @param	array
	* @return	array
	*/
	public function getOtherEnsen($params, $cnt=10)
	{
		$db_params = array();
		$sql = Apm_Seo::generateOtherEnsenSql($params, $db_params, $cnt);
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}
	/**
	* 周辺の駅データ取得
	*
	* @access	public
	* @param	array
	* @return	array
	*/
	public function getAroundEki($params, $cnt=5)
	{
		$db_params = array();
		$sql = Apm_Seo::generateAroundEkiSql($params, $db_params, $cnt);
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}
	/**
	* 周辺のエリアデータ取得
	*
	* @access	public
	* @param	array
	* @return	array
	*/
	public function getAroundArea($params, $Category, $cnt=5)
	{
		$db_params = array();
		$sql = Apm_Seo::generateAroundAreaSql($params, $db_params, $Category, $cnt);
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}

	/**
	* 沿線のエリア・都道府県データ取得
	*
	* @access	public
	* @param	array
	* @return	array
	*/
	public function getEnsenArea($params)
	{
		$db_params = array();
		$sql = Apm_Seo::generateEnsenAreaSql($params, $db_params);
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}

	/**
	* ランダム都道府県データ取得
	*
	* @access	public
	* @param	$cnt 取得件数
	* @return	array 都道府県データ
	*/
	public function getRandomPref($cnt)
	{
		// エリアデータを取得
		$area_pref = Apm_Bukkenurl::generatePrefStaticUrl(array(), Apm_Config_Search::SRHKBN_JYUSYO);
		// ランダムに都道府県取得
		$arrPrefCd = array_rand($area_pref['PREF'], $cnt);
		// 配列生成
		$arrPref = array();
		foreach ($arrPrefCd as $prefCd) {
			$arrPref[] = array(
				'CD'   => $prefCd,
				'NAME' => Apm_Config_Shop::$PREF_LIST[$prefCd],
				'URL'  => $area_pref['PREF'][$prefCd]
			);
		}
		return $arrPref;
	}

	/**
	* ランダム市区町村データ取得
	*
	* @access	public
	* @param	$prefCd 都道府県CD
	* @param	$cnt 取得件数
	* @return	array 市区町村データ
	*/
	public function getRandomShikuchousonLink($prefCdList, $cnt)
	{
		$sql = "";
		$wherePrefCd = "";
		$db_params = array();
		$result = array();
		$suggestLink = array();
		
		if (count($prefCdList) > 0 & $cnt > 0) {
			$count = 0;
			foreach ($prefCdList as $prefCd) {
				if ($count > 0) {
					$wherePrefCd .= "OR ";
				}
				$wherePrefCd .= "T57_TODOUFUKEN_CD = :PrefCd_".$count." ";
				$db_params["PrefCd_".$count] = $prefCd;
				$count++;
			}
			
			$sql .= "SELECT *";
			$sql .= "  FROM (";
			$sql .= "    SELECT";
			$sql .= "      T57_TODOUFUKEN_CD";
			$sql .= "     ,T57_SHIKUCHOUSON_CD";
			$sql .= "     ,T57_SHIKUCHOUSON";
			$sql .= "     ,M01_AREA_ROMAN_NAME AS T57_AREA_ROMAN_NAME";
			$sql .= "    FROM";
			$sql .= "      T57SEARCH_SHIKUCHOUSON_SUM INNER JOIN M01AREA ON (T57_TODOUFUKEN_CD = M01_TODOUFUKEN_CD)";
			$sql .= "    WHERE";
			$sql .= "      (" . $wherePrefCd . ")";
			$sql .= "    AND T57_DATA_KUBUN = 0";
			$sql .= "    AND T57_SHIKUCHOUSON_CNT > 0";
			$sql .= "    ORDER BY";
			$sql .= "      dbms_random.random";
			$sql .= "  )";
			$sql .= " WHERE";
			$sql .= "   ROWNUM <= :recordCnt";
			$db_params[":recordCnt"] = $cnt;
			
			//echo $sql;
			//print_r($db_params);
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			
			foreach ($result as $linkData) {
				$srhParams = array();
				$srhParams['AreaName'] = $linkData['T57_AREA_ROMAN_NAME'];
				$srhParams['CityCd']   = $linkData['T57_SHIKUCHOUSON_CD'];
				$srhParams['PrefName'] = Apm_Config_Search::$TODOUFUKEN_NAME_CODE_LIST[$linkData['T57_TODOUFUKEN_CD']];
				$url = Apm_Bukkenurl::generateUrlByParameters($srhParams, 'chiiki', '3');
				
				$link = array();
				$link['Name'] = $linkData['T57_SHIKUCHOUSON'];
				$link['Url']  = $url;
				$suggestLink[] = $link;
			}
		}
		
		return $suggestLink;
	}
	
	/**
	* ランダム町域データ取得
	*
	* @access	public
	* @param	$prefCd 都道府県CD
	* @param	$cnt 取得件数
	* @return	array 町域データ
	*/
	public function getRandomChouLink($prefCdList, $cnt)
	{
		$sql = "";
		$wherePrefCd = "";
		$db_params = array();
		$result = array();
		$suggestLink = array();
		
		if (count($prefCdList) > 0 & $cnt > 0) {
			$count = 0;
			foreach ($prefCdList as $prefCd) {
				if ($count > 0) {
					$wherePrefCd .= "OR ";
				}
				$wherePrefCd .= "T55_TODOUFUKEN_CD = :PrefCd_".$count." ";
				$db_params["PrefCd_".$count] = $prefCd;
				$count++;
			}
			
			$sql .= "SELECT *";
			$sql .= "  FROM (";
			$sql .= "    SELECT";
			$sql .= "      T55_TODOUFUKEN_CD";
			$sql .= "     ,T55_SHIKUCHOUSON_CD";
			$sql .= "     ,T55_CHOUMEI_CD";
			$sql .= "     ,T55_CHOUMEI";
			$sql .= "     ,M01_AREA_ROMAN_NAME AS T55_AREA_ROMAN_NAME";
			$sql .= "    FROM";
			$sql .= "      T55CHOUMEI_SUM INNER JOIN M01AREA ON (T55_TODOUFUKEN_CD = M01_TODOUFUKEN_CD)";
			$sql .= "    WHERE";
			$sql .= "      (" . $wherePrefCd . ")";
			$sql .= "    AND T55_DATA_KUBUN = 0";
			$sql .= "    AND T55_CHOUMEI_CNT > 0";
			$sql .= "    ORDER BY";
			$sql .= "      dbms_random.random";
			$sql .= "  )";
			$sql .= " WHERE";
			$sql .= "   ROWNUM <= :recordCnt";
			$db_params[":recordCnt"] = $cnt;
			
			//echo $sql;
			//print_r($db_params);
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			
			foreach ($result as $linkData) {
				$srhParams = array();
				$srhParams['AreaName'] = $linkData['T55_AREA_ROMAN_NAME'];
				$srhParams['CityCd']   = $linkData['T55_SHIKUCHOUSON_CD'];
				$srhParams['TownCd']   = $linkData['T55_CHOUMEI_CD'];
				$srhParams['PrefName'] = Apm_Config_Search::$TODOUFUKEN_NAME_CODE_LIST[$linkData['T55_TODOUFUKEN_CD']];
				$url = Apm_Bukkenurl::generateUrlByParameters($srhParams, 'chiiki', '4');
				
				$link = array();
				$link['Name'] = $linkData['T55_CHOUMEI'];
				$link['Url']  = $url;
				$suggestLink[] = $link;
			}
		}
		
		return $suggestLink;
	}
	
	/**
	* ランダム沿線データ取得
	*
	* @access	public
	* @param	$prefCd 都道府県CD
	* @param	$cnt 取得件数
	* @return	array 沿線データ
	*/
	public function getRandomEnsenLink($prefCdList, $cnt)
	{
		$sql = "";
		$wherePrefCd = "";
		$db_params = array();
		$result = array();
		$suggestLink = array();
		
		if (count($prefCdList) > 0 & $cnt > 0) {
			$count = 0;
			foreach ($prefCdList as $prefCd) {
				if ($count > 0) {
					$wherePrefCd .= "OR ";
				}
				$wherePrefCd .= "T57_TODOUFUKEN_CD = :PrefCd_".$count." ";
				$db_params["PrefCd_".$count] = $prefCd;
				$count++;
			}
			
			$sql .= "SELECT *";
			$sql .= "  FROM (";
			$sql .= "    SELECT";
			$sql .= "      T57_TODOUFUKEN_CD";
			$sql .= "     ,T57_TODOUFUKEN";
			$sql .= "     ,T57_ENSEN_CD";
			$sql .= "     ,T57_ENSEN";
			$sql .= "     ,M01_AREA_ROMAN_NAME AS T57_AREA_ROMAN_NAME";
			$sql .= "    FROM";
			$sql .= "      T57ENSEN_SUM INNER JOIN M01AREA ON (T57_TODOUFUKEN_CD = M01_TODOUFUKEN_CD)";
			$sql .= "    WHERE";
			$sql .= "      (" . $wherePrefCd . ")";
			$sql .= "    AND T57_DATA_KUBUN = 0";
			$sql .= "    AND T57_ENSEN_CNT > 0";
			$sql .= "    ORDER BY";
			$sql .= "      dbms_random.random";
			$sql .= "  )";
			$sql .= " WHERE";
			$sql .= "   ROWNUM <= :recordCnt";
			$db_params[":recordCnt"] = $cnt;
			
			//echo $sql;
			//print_r($db_params);
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			
			foreach ($result as $linkData) {
				$srhParams = array();
				$srhParams['RailCd']   = $linkData['T57_ENSEN_CD'];
				$srhParams['PrefName'] = Apm_Config_Search::$TODOUFUKEN_NAME_CODE_LIST[$linkData['T57_TODOUFUKEN_CD']];
				$url = Apm_Bukkenurl::generateUrlByParameters($srhParams, 'station', '2.5');
				
				$link = array();
				$link['Name'] = $linkData['T57_ENSEN'];
				$link['Url']  = $url;
				$suggestLink[] = $link;
			}
		}
		
		return $suggestLink;
	}

	/**
	* ランダム駅データ取得
	*
	* @access	public
	* @param	$prefCd 都道府県CD
	* @param	$cnt 取得件数
	* @return	array 駅データ
	*/
	public function getRandomEkiLink($prefCdList, $cnt)
	{
		$sql = "";
		$wherePrefCd = "";
		$db_params = array();
		$result = array();
		$suggestLink = array();
		
		if (count($prefCdList) > 0 & $cnt > 0) {
			$count = 0;
			foreach ($prefCdList as $prefCd) {
				if ($count > 0) {
					$wherePrefCd .= "OR ";
				}
				$wherePrefCd .= "T54_TODOUFUKEN_CD = :PrefCd_".$count." ";
				$db_params["PrefCd_".$count] = $prefCd;
				$count++;
			}
			
			$sql .= "SELECT *";
			$sql .= "  FROM (";
			$sql .= "    SELECT";
			$sql .= "      T54_TODOUFUKEN_CD";
			$sql .= "     ,T54_ENSEN_CD";
			$sql .= "     ,T54_EKI_CD";
			$sql .= "     ,T54_EKI_NAME";
			$sql .= "     ,M01_AREA_ROMAN_NAME AS T54_AREA_ROMAN_NAME";
			$sql .= "    FROM";
			$sql .= "      T54EKI_SUM INNER JOIN M01AREA ON (T54_TODOUFUKEN_CD = M01_TODOUFUKEN_CD)";
			$sql .= "    WHERE";
			$sql .= "      (" . $wherePrefCd . ")";
			$sql .= "    AND T54_DATA_KUBUN = 0";
			$sql .= "    AND T54_EKI_CNT > 0";
			$sql .= "    ORDER BY";
			$sql .= "      dbms_random.random";
			$sql .= "  )";
			$sql .= " WHERE";
			$sql .= "   ROWNUM <= :recordCnt";
			$db_params[":recordCnt"] = $cnt;
			
			//echo $sql;
			//print_r($db_params);
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			
			foreach ($result as $linkData) {
				$srhParams = array();
				$srhParams['StCd']     = $linkData['T54_EKI_CD'];
				$srhParams['PrefName'] = Apm_Config_Search::$TODOUFUKEN_NAME_CODE_LIST[$linkData['T54_TODOUFUKEN_CD']];
				$url = Apm_Bukkenurl::generateUrlByParameters($srhParams, 'station', '3');
				
				$link = array();
				$link['Name'] = $linkData['T54_EKI_NAME'];
				$link['Url']  = $url;
				$suggestLink[] = $link;
			}
		}
		
		return $suggestLink;
	}

	/**
	* サジェストリンクブロック情報の生成
	*
	* @access	public
	* @param	$prefCd 都道府県CD
	* @param	$shikuchousonSize 市区リンクの
	* @param	$chouSize 取得件数 町域リンクの個数
	* @param	$ensenSize 取得件数 沿線リンクの個数
	* @param	$ekiSize 取得件数 駅リンクの個数
	* @return	array サジェストリンクブロック情報
	* 【利用上の注意】
	* 	・リンクの個数を0にするとサジェストリンクのブロック自体が表示されない
	*/
	public function getSuggestLinkBlockData($prefCd, $shikuchousonSize, $chouSize, $ensenSize, $ekiSize)
	{
		$suggestLinkBlock = array();
		$prefCdList = array($prefCd);
		$prefName = "";
		
		if(isset($prefCd)){
			//都道府県名を取得
			$prefName = Apm_Config_Shop::$PREF_LIST[$prefCd];
			
			//サジェストリンクブロックデータを生成
			if($shikuchousonSize > 0){
				$suggestLinkBlock['Shikuchouson'][Title] = $prefName . "の地域の物件を探す";
				$suggestLinkBlock['Shikuchouson'][suggestLink] = Apm_Seo::getRandomShikuchousonLink($prefCdList,$shikuchousonSize);
			}
			if($chouSize > 0){
				$suggestLinkBlock['Chou'][Title] = $prefName . "の町検索結果";
				$suggestLinkBlock['Chou'][suggestLink] = Apm_Seo::getRandomChouLink($prefCdList,$chouSize);
			}
			if($ensenSize > 0){
				$suggestLinkBlock['Ensen'][Title] = $prefName . "の沿線検索結果";
				$suggestLinkBlock['Ensen'][suggestLink] = Apm_Seo::getRandomEnsenLink($prefCdList,$ensenSize);
			}
			if($ekiSize > 0){
				$suggestLinkBlock['Eki'][Title] = $prefName . "の駅検索結果";
				$suggestLinkBlock['Eki'][suggestLink] = Apm_Seo::getRandomEkiLink($prefCdList,$ekiSize);
			}
		}
		return $suggestLinkBlock;
	}

	/**
	* サジェストリンクブロック情報の生成（物件一覧用）
	*
	* @access	public
	* @param	$params パラメータ
	* @param	$shikuchousonSize 市区リンクの
	* @param	$chouSize 取得件数 町域リンクの個数
	* @param	$ensenSize 取得件数 沿線リンクの個数
	* @param	$ekiSize 取得件数 駅リンクの個数
	* @return	array サジェストリンクブロック情報
	* 【利用上の注意】
	* 	・リンクの個数を0にするとサジェストリンクのブロック自体が表示されない
	*/
	public function getSuggestLinkBlockDataForList($params,$shikuchousonSize,$chouSize,$ensenSize,$ekiSize)
	{
		$suggestLinkBlock = array();
		$prefCd = "";
		if (empty($params['PrefCd'])) {
			return $suggestLinkBlock;
		} else {
			if (is_array($params['PrefCd'])) {
				$prefCd = $params['PrefCd'][0];
			} else {
				$prefCd = $params['PrefCd'];
			}
		}
		$prefCdList = array($prefCd);
		//都道府県名を取得
		$prefName = Apm_Config_Shop::$PREF_LIST[$prefCd];
		if ($prefCd != '01') $prefName = mb_substr($prefName, 0, -1);
		
		// パターンを取得
		$Pattern = Apm_Bukkenurl::getParamPattern($params, $params['SrhKbn']);
		
		// データ成形
		$suggestLink = array();
		$addData     = array();
		switch ($Pattern) {
			case 'chiiki_3':
			case 'x2_3':
			case 'x4_3':
			case 'x5_3':
				// サジェストリンクデータを取得
				$suggestLinkBlock = Apm_Seo::getSuggestLinkBlockData($prefCd,10,$chouSize,5,20);
				// 周辺のエリアから探す
				Apm_Seo::generateAroundAreaBlock($addData, $params, $Pattern, array());
				if (!empty($addData)) {
					$suggestLinkBlock['Shikuchouson']['Title'] = "周辺地域・人気エリアから検索";
					// 周辺データ成形
					$aroundTitle = "";
					$aroundData  = array();
					foreach ($addData['AroundArea']['DATA'] as $value) {
						if (empty($value['STATIC_URL'])) {
							$aroundTitle = $value['DISP_NAME'];
						}
						$aroundData[] = array(
							 'Name' => $value['DISP_NAME']
							,'Url'  => $value['STATIC_URL']
						);
					}
					$aroundTitle .= '周辺';
					$aroundTitle  = array(array('Title' => $aroundTitle));		// 配列化
					// 人気データ
					$suggestTitle = array(array('Title' => "人気エリア"));
					$suggestData  = $suggestLinkBlock['Shikuchouson']['suggestLink'];
					// サジェストリンクデータ再設定
					$suggestLinkBlock['Shikuchouson']['suggestLink'] = array_merge($aroundTitle, $aroundData, $suggestTitle, $suggestData);
				}
				// 沿線データ
				$ensenTitle = array(array('Title' => "人気沿線"));
				$ensenData  = $suggestLinkBlock['Ensen']['suggestLink'];
				// 駅データ
				$ekiTitle = array(array('Title' => "人気駅"));
				$ekiData  = $suggestLinkBlock['Eki']['suggestLink'];
				// 沿線・駅データをマージ
				unset($suggestLinkBlock['Ensen']);
				$suggestLinkBlock['Eki']['Title'] = $prefName."の沿線・駅から検索";
				$suggestLinkBlock['Eki']['suggestLink'] = array_merge($ensenTitle, $ensenData, $ekiTitle, $ekiData);
				break;
			case 'chiiki_4':
			case 'x2_4':
			case 'x4_4':
			case 'x5_4':
				// サジェストリンクデータを取得
				$suggestLinkBlock = Apm_Seo::getSuggestLinkBlockData($prefCd,$shikuchousonSize,5,5,20);
				// 周辺のエリアから探す
				Apm_Seo::generateAroundAreaBlock($addData, $params, $Pattern, array());
				if (!empty($addData)) {
					$suggestLinkBlock['Chou']['Title'] = "周辺町域・人気の町から検索";
					// 周辺データ成形
					$aroundTitle = "";
					$aroundData  = array();
					foreach ($addData['AroundArea']['DATA'] as $value) {
						if (empty($value['STATIC_URL'])) {
							$aroundTitle = $value['DISP_NAME'];
						}
						$aroundData[] = array(
							 'Name' => $value['DISP_NAME']
							,'Url'  => $value['STATIC_URL']
						);
					}
					$aroundTitle .= '周辺';
					$aroundTitle  = array(array('Title' => $aroundTitle));		// 配列化
					// 人気データ
					$suggestTitle = array(array('Title' => "人気町域"));
					$suggestData  = $suggestLinkBlock['Chou']['suggestLink'];
					// サジェストリンクデータ再設定
					$suggestLinkBlock['Chou']['suggestLink'] = array_merge($aroundTitle, $aroundData, $suggestTitle, $suggestData);
				}
				// 沿線データ
				$ensenTitle = array(array('Title' => "人気沿線"));
				$ensenData  = $suggestLinkBlock['Ensen']['suggestLink'];
				// 駅データ
				$ekiTitle = array(array('Title' => "人気駅"));
				$ekiData  = $suggestLinkBlock['Eki']['suggestLink'];
				// 沿線・駅データをマージ
				unset($suggestLinkBlock['Ensen']);
				$suggestLinkBlock['Eki']['Title'] = $prefName."の沿線・駅から検索";
				$suggestLinkBlock['Eki']['suggestLink'] = array_merge($ensenTitle, $ensenData, $ekiTitle, $ekiData);
				break;
			case 'station_3':
			case 'x2s':
			case 'x4s':
			case 'x5s':
				// サジェストリンクデータを取得
				$suggestLinkBlock = Apm_Seo::getSuggestLinkBlockData($prefCd,$shikuchousonSize,$chouSize,5,15);
				// 周辺の駅から探す
				Apm_Seo::generateAroundEkiBlock($addData, $params, $Pattern, array());
				if (!empty($addData)) {
					$suggestLinkBlock['Eki']['Title'] = "周辺駅または、".$prefName."の沿線・駅から検索";
					// 周辺データ成形
					$aroundTitle = "";
					$aroundData  = array();
					foreach ($addData['AroundEki']['DATA'] as $value) {
						if (empty($value['STATIC_URL'])) {
							$aroundTitle = $value['DISP_NAME'];
						}
						$aroundData[] = array(
							 'Name' => $value['DISP_NAME']
							,'Url'  => $value['STATIC_URL']
						);
					}
					$aroundTitle .= '周辺';
					$aroundTitle  = array(array('Title' => $aroundTitle));		// 配列化
					// 沿線データ
					$ensenTitle = array(array('Title' => "人気沿線"));
					$ensenData  = $suggestLinkBlock['Ensen']['suggestLink'];
					// 駅データ
					$ekiTitle = array(array('Title' => "人気駅"));
					$ekiData  = $suggestLinkBlock['Eki']['suggestLink'];
					// サジェストリンクデータ再設定
					unset($suggestLinkBlock['Ensen']);
					$suggestLinkBlock['Eki']['suggestLink'] = array_merge($aroundTitle, $aroundData, $ensenTitle, $ensenData, $ekiTitle, $ekiData);
				}
				break;
			default:
				// サジェストリンクデータを取得
				$suggestLinkBlock = Apm_Seo::getSuggestLinkBlockData($prefCd,$shikuchousonSize,$chouSize,$ensenSize,$ekiSize);
				break;
		}
		
		return $suggestLinkBlock;
	}

	/**
	* 新着物件ブロック共通SELECT句
	*
	* @access	public
	* @param	$result 取得データ
	* @return	array コンバートデータ
	*/
	public function getShinchakuSelect()
	{
		$sql  = "";
		$sql .= " SELECT";
		$sql .= "     heya_info.T03_JYUUSHO_TEXT";
		$sql .= "    ,heya_info.T03_HEYA_CD";
		$sql .= "    ,heya_info.T03_GAIKAN_GAZOU01";
		$sql .= "    ,'5' || SUBSTR(heya_info.T03_TENPO_CD,1,2) || SUBSTR(heya_info.T03_TENPO_CD,4,5) || '00' AS T03_TENPO_CD";
		$sql .= "    ,heya_info.T03_TENPO_CD AS M05_TENPO_CD";
		$sql .= "    ,heya_info.T03_TENPO_NAME";
		$sql .= "    ,CASE ";
		$sql .= "        WHEN heya_info.T03_YACHIN >=10000 THEN TO_CHAR(heya_info.T03_YACHIN / 10000) ";
		$sql .= "        ELSE  '0' || TO_CHAR(heya_info.T03_YACHIN / 10000) ";
		$sql .= "        END T03_YACHIN";
		$sql .= "    ,CASE";
		$sql .= "        WHEN (";
		$sql .= "            heya_info.T03_KANRIHI IS null";
		$sql .= "            AND heya_info.T03_KYOUEKIHI IS null";
		$sql .= "        ) THEN '-'";
		$sql .= "        ELSE TO_CHAR(NVL(heya_info.T03_KANRIHI, 0) + NVL(heya_info.T03_KYOUEKIHI, 0)) || '円'";
		$sql .= "        END AS T03_KANRI_KYOEKI_SUM";
		$sql .= "    ,heya_info.T03_TATEMONO_TYPE";
		$sql .= "    ,heya_info.T03_SENYUU_MENSEKI";
		$sql .= "    ,heya_info.T03_MADORI";
		$sql .= "    ,heya_info.T03_TATEMONO_TYPE";
		$sql .= "    ,heya_info.T03_KANSEINEN";
		$sql .= "    ,heya_info.T03_KANSEITSUKI";
		$sql .= "    ,heya_info.T03_ENSEN_CD01";
		$sql .= "    ,heya_info.T03_ENSEN_NAME";
		$sql .= "    ,heya_info.T03_EKI_NAME";
		$sql .= "    ,heya_info.T03_BUS_JYOUSHA";
		$sql .= "    ,heya_info.T03_BUS_STOP";
		$sql .= "    ,heya_info.T03_TOHO01";
		
		return $sql;
	}

	/**
	* 新着物件ブロック表示用コンバート
	*
	* @access	public
	* @param	$result 取得データ
	* @return	array コンバートデータ
	*/
	public function convertShinchakuBlock($result)
	{
		$configObject = Zend_Registry::get('config');
		$config = $configObject->apm->toArray();
		
		$convertData = array();
		foreach ($result as $buken) {
			
			$link = array();
			$link['ID']               = $buken['T03_HEYA_CD'];
			$link['JYUUSHO']          = $buken['T03_JYUUSHO_TEXT'];
			$link['HEYA_CD']          = $buken['T03_HEYA_CD'];
			$link['GAIKAN_GAZOU01']   = $config['apl']['imagesvurl'] . "fs/Original/img/images/" . $buken['T03_TENPO_CD'] . "/" . $buken['T03_GAIKAN_GAZOU01'];
			$link['YACHIN']           = $buken['T03_YACHIN'];
			$link['TATEMONO_TYPE']    = $buken['T03_TATEMONO_TYPE'];
			$link['KANRI_KYOEKI_SUM'] = $buken['T03_KANRI_KYOEKI_SUM'];
			$link['SENYUU_MENSEKI']   = $buken['T03_SENYUU_MENSEKI'];
			$link['MADORI']           = $buken['T03_MADORI'];
			$link['KANSEI_NENGETU']   = $buken['T03_KANSEINEN'] . "/" . $buken['T03_KANSEITSUKI'];
			$link['JYUUSHO_ORG']      = $buken['T03_JYUUSHO_TEXT'];
			$link['ACCESS_01']        = Apm_Bukkenitems::GetTrafficStr($buken);
			$link['TENPO_NAME']       = $buken['T03_TENPO_NAME'];
			
			$link['URL'] = Apm_Bukkenurl::generateUrlByParametersDetail($link);
			$link['SHOP_URL'] = Apm_Bukkenurl::generateUrlByParametersShopDetail($buken);
			
			if (strlen($link['JYUUSHO']) > 9) {
				$link['JYUUSHO'] = mb_substr($link['JYUUSHO'], 0, 9) . '..';
			}
			
			$convertData[] = $link;
		}
		
		return $convertData;
	}

	/**
	* 新着物件ブロックデータ取得
	*
	* @access	public
	* @param	$cnt 取得件数
	* @return	array 新着物件ブロックデータ
	*/
	public function getShinchakuBlockData($cnt)
	{
		/*変数の宣言*/
		$sql = "";					//SQL格納		
		$db_params = array();		//バインド変数を格納
		$result = array();			//SQL結果の格納
		$shinchakuBlock = array();	//新着ブロックデータ格納
		
		if(!empty($cnt)){
			/*新着情報をDBから取得*/
			//バインド変数を格納
			$db_params[":recordCnt"] = $cnt;	//取得するレコード数
		
			//SQLの生成
			$sql .= Apm_Seo::getShinchakuSelect();
			$sql .= " 	    FROM";
			$sql .= " 	        (";
			$sql .= " 	            SELECT";
			$sql .= " 	                    *";
			$sql .= " 	                FROM";
			$sql .= " 	                    (";		
			$sql .= " 	                        SELECT";
			$sql .= " 	                                *";
			$sql .= " 	                            FROM";		
			$sql .= " 	                                t03shinchaku_bukken_todoufuken sample(1)";
			$sql .= " 	                            ORDER BY";
			$sql .= " 	                                dbms_random.random";		
			$sql .= " 	                    )";
			$sql .= " 	                WHERE";
			$sql .= " 	                    ROWNUM <= :recordCnt";		
			$sql .= " 	        ) shinchaku_info INNER JOIN t03web_heya heya_info";
			$sql .= " 	            ON (shinchaku_info.t03_heya_cd = heya_info.t03_heya_cd)";
			//echo $sql;exit;
			//print_r($db_params);
			
			//SQLの実行
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			//print_r($result);exit;
				
			/*新着ブロック情報の生成*/
			//SQLから取得した新着物件情報が0以上であれば、新着物件情報ブロックをを生成
			if(count($result) > 0){		
				
				//新着ブロックのタイトルを設定
				$shinchakuBlock['Title'] = "新着の物件情報";
				
				//新着物件情報を連想配列$linkにまとめ、$shinchakuBlockに格納する
				$shinchakuBlock['ShinchakuLink'] = Apm_Seo::convertShinchakuBlock($result);
			}
		}
		
		/*新着ブロック情報の返す*/
		return $shinchakuBlock;
	}

	/**
	* 新着物件ブロックデータ取得(店舗指定)
	*
	* @access	public
	* @param	$tenpoCd 店舗CD
	* @param	$cnt 取得件数
	* @return	array 新着物件ブロックデータ
	*/
	public function getTenpoShinchakuBlockData($tenpoCd,$cnt)
	{
		/*変数の宣言*/
		$sql = "";					//SQL格納		
		$db_params = array();		//バインド変数を格納
		$result = array();			//SQL結果の格納
		$shinchakuBlock = array();	//新着ブロックデータ格納
		
		if(!empty($tenpoCd) && !empty($cnt)){
			/*新着情報をDBから取得*/
			//バインド変数を格納
			$db_params[":recordCnt"] = $cnt;	//取得するレコード数
			$db_params[":tenpoCd"] = $tenpoCd;	//取得する物件の店舗CD
			
			//SQLの生成	
			$sql .= Apm_Seo::getShinchakuSelect();
			$sql .= " 	    FROM";
			$sql .= " 	        (";
			$sql .= " 	            SELECT";
			$sql .= " 	                    *";
			$sql .= " 	                FROM";
			$sql .= " 	                    (";		
			$sql .= " 	                        SELECT";
			$sql .= " 	                                *";
			$sql .= " 	                            FROM";		
			$sql .= " 	                                t03shinchaku_bukken_tenpo";
			$sql .= " 	                            WHERE";
			$sql .= " 	                                t03_tenpo_cd = :tenpoCd";
			$sql .= " 	                            ORDER BY";
			$sql .= " 	                                dbms_random.random";		
			$sql .= " 	                    )";
			$sql .= " 	                WHERE";
			$sql .= " 	                    ROWNUM <= :recordCnt";		
			$sql .= " 	        ) shinchaku_info INNER JOIN t03web_heya heya_info";
			$sql .= " 	            ON (shinchaku_info.t03_heya_cd = heya_info.t03_heya_cd)";
			//echo $sql;exit;
			//print_r($db_params);
			
			//SQLの実行
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			//print_r($result);exit;
			
			/*新着ブロック情報の生成*/
			//SQLから取得した新着物件情報が0以上であれば、新着物件情報ブロックをを生成
			if(count($result) > 0){
				
				//新着ブロックのタイトルを設定
				$shinchakuBlock['Title'] = "新着の物件情報";
				
				//新着物件情報を連想配列$linkにまとめ、$shinchakuBlockに格納する
				$shinchakuBlock['ShinchakuLink'] = Apm_Seo::convertShinchakuBlock($result);
			}
		}
		/*新着ブロック情報の返す*/
		return $shinchakuBlock;
	}
	
	/**
	* 新着物件ブロックデータ取得(都道府県指定)
	*
	* @access	public
	* @param	$todoufukenCd 都道府県CD
	* @param	$cnt 取得件数
	* @return	array 新着物件ブロックデータ
	*/
	public function getTodoufukenShinchakuBlockData($todoufukenCd,$cnt)
	{
		/*変数の宣言*/
		$sql = "";					//SQL格納		
		$db_params = array();		//バインド変数を格納
		$result = array();			//SQL結果の格納
		$shinchakuBlock = array();	//新着ブロックデータ格納
		$shinchakuIndex = -1;		//乱数を取得するデータのINDEX番号　※dbms_random.randomの負荷を下げるためデータを分割している

		// 変数が不足していれば空のブロックデータを返す
		if(empty($todoufukenCd) || empty($cnt) ) return $shinchakuBlock;
		
		// ランダム抽出用のデータブロックINDEX取得
		$shinchakuIndex = Apm_Seo::getTodoufukenShinchakuCount($todoufukenCd);
		if($shinchakuIndex > 1) $shinchakuIndex = mt_rand(1,$shinchakuIndex);
		
		if($shinchakuIndex > 0){
		/*新着情報をDBから取得*/
		//バインド変数を格納
			$db_params[":recordCnt"] = $cnt;					//取得するレコード数
			$db_params[":todoufukenCd"] = $todoufukenCd;		//取得する物件の都道府県CD
			$db_params[":shinchakuIndex"] = $shinchakuIndex;	//取得する物件の都道府県CD
			
			//SQLの生成
			$sql .= Apm_Seo::getShinchakuSelect();
			$sql .= " 	    FROM";
			$sql .= " 	        (";
			$sql .= " 	            SELECT";
			$sql .= " 	                    *";
			$sql .= " 	                FROM";
			$sql .= " 	                    (";		
			$sql .= " 	                        SELECT";
			$sql .= " 	                                *";
			$sql .= " 	                            FROM";		
			$sql .= " 	                                t03shinchaku_bukken_todoufuken ";
			$sql .= " 	                            WHERE";
			$sql .= " 	                                t03_todoufuken_cd = :todoufukenCd";
			$sql .= " 	                                AND t03_index = :shinchakuIndex";
			$sql .= " 	                            ORDER BY";
			$sql .= " 	                                dbms_random.random";		
			$sql .= " 	                    )";
			$sql .= " 	                WHERE";
			$sql .= " 	                    ROWNUM <= :recordCnt";		
			$sql .= " 	        ) shinchaku_info INNER JOIN t03web_heya heya_info";
			$sql .= " 	            ON (shinchaku_info.t03_heya_cd = heya_info.t03_heya_cd)";
			//echo $sql;
			//print_r($db_params);exit;
			
			//SQLの実行
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			//print_r($result);exit;
			
			/*新着ブロック情報の生成*/
			//SQLから取得した新着物件情報が0以上であれば、新着物件情報ブロックをを生成
			if(count($result) > 0){
				
				//新着ブロックのタイトルを設定
				$shinchakuBlock['Title'] = "新着の物件情報";
				
				//新着物件情報を連想配列$linkにまとめ、$shinchakuBlockに格納する
				$shinchakuBlock['ShinchakuLink'] = Apm_Seo::convertShinchakuBlock($result);
			}
		}
		/*新着ブロック情報の返す*/
		return $shinchakuBlock;
	}

	/**
	* 新着物件ブロックデータ取得(都道府県・市区町村指定で、市区町村単位)
	* →専用バッチにて用意された、市区町村単位の新着取得テーブルに対しSELECTを実行してデータを取得する
	*
	* @access	public
	* @param	$todoufukenCd 都道府県CD
	* @param	$shikuchousonCd 市区町村CD
	* @param	$cnt 取得件数の指定数
	* @return	array 新着物件ブロックデータ
	*/
	public function getShikuchousonShinchakuBlockData($todoufukenCd,$shikuchousonCd,$cnt)
	{
		/*変数の宣言*/
		$sql = "";					//SQL格納		
		$db_params = array();		//バインド変数を格納
		$result = array();			//SQL結果の格納
		$shinchakuBlock = array();	//新着ブロックデータ格納

		// 変数が不足していれば空のブロックデータを返す
		if(empty($todoufukenCd) || empty($shikuchousonCd) || empty($cnt) ) return $shinchakuBlock;
		
		/*新着情報をDBから取得*/
		//バインド変数を格納
		$db_params[":recordCnt"] = $cnt;					//取得するレコード数
		$db_params[":todoufukenCd"] = $todoufukenCd;		//取得する物件の都道府県CD
		$db_params[":shikuchousonCd"] = $shikuchousonCd;	//取得する物件の市区町村CD
		
		//SQLの生成
		$sql .= Apm_Seo::getShinchakuSelect();
		$sql .= "       FROM";
		$sql .= "           (";
		$sql .= "               SELECT";
		$sql .= "                       *";
		$sql .= "                   FROM";
		$sql .= "                       (";
		$sql .= "                           SELECT";
		$sql .= "                                   *";
		$sql .= "                               FROM";
		$sql .= "                                   t03shinchaku_bukken_shiku ";
		$sql .= "                               WHERE";
		$sql .= "                                   t03_todoufuken_cd = :todoufukenCd";
		$sql .= "                                   AND t03_shikuchouson_cd = :shikuchousonCd";
		$sql .= "                               ORDER BY";
		$sql .= "                                   dbms_random.random";
		$sql .= "                       )";
		$sql .= "                   WHERE";
		$sql .= "                       ROWNUM <= :recordCnt";
		$sql .= "           ) shinchaku_info INNER JOIN t03web_heya heya_info";
		$sql .= "               ON (shinchaku_info.t03_heya_cd = heya_info.t03_heya_cd)";

		//SQLの実行
		$result = Apm_Util::dbGetList($sql, $db_params,$db);

		/*新着ブロック情報の生成*/
		//SQLから取得した新着物件情報が0以上であれば、新着物件情報ブロックをを生成
		if(count($result) > 0){
			
			//新着ブロックのタイトルを設定
			$shinchakuBlock['Title'] = "新着の物件情報";
			
			//新着物件情報を連想配列$linkにまとめ、$shinchakuBlockに格納する
			$shinchakuBlock['ShinchakuLink'] = Apm_Seo::convertShinchakuBlock($result);
		}

		/*新着ブロック情報を返す*/
		return $shinchakuBlock;
	}

	/**
	* 新着物件ブロックデータ取得(建物種別指定)
	*
	* @access	public
	* @param	$tatemonoTypeCd 建物種別CD
	* @param	$cnt 取得件数
	* @return	array 新着物件ブロックデータ
	*/
	public function getTatemonoTypeShinchakuBlockData($tatemonoTypeCd,$cnt)
	{
		/*変数の宣言*/
		$sql = "";					//SQL格納		
		$db_params = array();		//バインド変数を格納
		$result = array();			//SQL結果の格納
		$shinchakuIndex = -1;		//乱数を取得するデータのINDEX番号　※dbms_random.randomの負荷を下げるためデータを分割している

		// 変数が不足していれば空のブロックデータを返す
		if(empty($tatemonoTypeCd) || empty($cnt) ) return $shinchakuBlock;
		
		// ランダム抽出用のデータブロックINDEX取得
		$shinchakuIndex  = Apm_Seo::getTatemonoTypeShinchakuCount($tatemonoTypeCd);
		if($shinchakuIndex > 1) $shinchakuIndex = mt_rand(1,$shinchakuIndex );
		
		if( $shinchakuIndex > 0){
			/*新着情報をDBから取得*/
			//バインド変数を格納
			$db_params[":recordCnt"] = $cnt;					//取得するレコード数
			$db_params[":tatemonoTypeCd"] = $tatemonoTypeCd;	//取得する建物の建物種別CD
			$db_params[":shinchakuIndex"] = $shinchakuIndex;	//取得する建物の建物種別CD
			
			//SQLの生成
			$sql .= Apm_Seo::getShinchakuSelect();
			$sql .= " 	    FROM";
			$sql .= " 	        (";
			$sql .= " 	            SELECT";
			$sql .= " 	                    *";
			$sql .= " 	                FROM";
			$sql .= " 	                    (";		
			$sql .= " 	                        SELECT";
			$sql .= " 	                                *";
			$sql .= " 	                            FROM";		
			$sql .= " 	                                t03shinchaku_bukken_type ";
			$sql .= " 	                            WHERE";
			$sql .= " 	                                t03_tatemono_type_cd = :tatemonoTypeCd";
			$sql .= " 	                                AND t03_index = :shinchakuIndex";
			$sql .= " 	                            ORDER BY";
			$sql .= " 	                                dbms_random.random";		
			$sql .= " 	                    )";
			$sql .= " 	                WHERE";
			$sql .= " 	                    ROWNUM <= :recordCnt";		
			$sql .= " 	        ) shinchaku_info INNER JOIN t03web_heya heya_info";
			$sql .= " 	            ON (shinchaku_info.t03_heya_cd = heya_info.t03_heya_cd)";
			//echo $sql;exit;
			//print_r($db_params);
			
			//SQLの実行
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			//print_r($result);exit;
			
			/*新着ブロック情報の生成*/
			//SQLから取得した新着物件情報が0以上であれば、新着物件情報ブロックをを生成
			if(count($result) > 0){
				
				//新着ブロックのタイトルを設定
				$shinchakuBlock['Title'] = "新着の物件情報";
				
				//新着物件情報を連想配列$linkにまとめ、$shinchakuBlockに格納する
				$shinchakuBlock['ShinchakuLink'] = Apm_Seo::convertShinchakuBlock($result);
			}
		}
			
		/*新着ブロック情報の返す*/
		return $shinchakuBlock;
	}

	
	/**
	* 新着物件ブロックデータ取得(こだわりID指定)
	*
	* @access	public
	* @param	$todoufukenCd 都道府県CD
	* @param	$cnt 取得件数
	* @return	array 新着物件ブロックデータ
	*/
	public function getKodawariShinchakuBlockData($kodawariId,$cnt)
	{
		/*変数の宣言*/
		$sql = "";					//SQL格納		
		$db_params = array();		//バインド変数を格納
		$result = array();			//SQL結果の格納
		$shinchakuBlock = array();	//新着ブロックデータ格納
		$shinchakuIndex = -1;		//乱数を取得するデータのINDEX番号　※dbms_random.randomの負荷を下げるためデータを分割している

		// 変数が不足していれば空のブロックデータを返す
		if(empty($kodawariId) || empty($cnt) ) return $shinchakuBlock;

		// ランダム抽出用のデータブロックINDEX取得
		$shinchakuIndex = Apm_Seo::getKodawariShinchakuCount($kodawariId);
		if($shinchakuIndex > 1) $shinchakuIndex = mt_rand(1,$shinchakuIndex);
		
		if($shinchakuIndex > 0){
			/*新着情報をDBから取得*/
			//バインド変数を格納
			$db_params[":recordCnt"] = $cnt;			//取得するレコード数
			$db_params[":kodawariId"] = $kodawariId;	//取得する物件のこだわり条件ID
			$db_params[":shinchakuIndex"] = $shinchakuIndex;	//取得する物件の都道府県CD

			//SQLの生成	
			$sql .= Apm_Seo::getShinchakuSelect();
			$sql .= " 	    FROM";
			$sql .= " 	        (";
			$sql .= " 	            SELECT";
			$sql .= " 	                    *";
			$sql .= " 	                FROM";
			$sql .= " 	                    (";		
			$sql .= " 	                        SELECT";
			$sql .= " 	                                *";
			$sql .= " 	                            FROM";		
			$sql .= " 	                                t03shinchaku_bukken_kodawari ";
			$sql .= " 	                            WHERE";
			$sql .= " 	                                t03_kodawari_id = :kodawariId";
			$sql .= " 	                                AND t03_index = :shinchakuIndex";
			$sql .= " 	                            ORDER BY";
			$sql .= " 	                                dbms_random.random";		
			$sql .= " 	                    )";
			$sql .= " 	                WHERE";
			$sql .= " 	                    ROWNUM <= :recordCnt";		
			$sql .= " 	        ) shinchaku_info INNER JOIN t03web_heya heya_info";
			$sql .= " 	            ON (shinchaku_info.t03_heya_cd = heya_info.t03_heya_cd)";
			//echo $sql;exit;
			//print_r($db_params);
			
			//SQLの実行
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			//print_r($result);exit;
			
			/*新着ブロック情報の生成*/
			//SQLから取得した新着物件情報が0以上であれば、新着物件情報ブロックをを生成
			if(count($result) > 0){
				
				//新着ブロックのタイトルを設定
				$shinchakuBlock['Title'] = "新着の物件情報";
				
				//新着物件情報を連想配列$linkにまとめ、$shinchakuBlockに格納する
				$shinchakuBlock['ShinchakuLink'] = Apm_Seo::convertShinchakuBlock($result);
			}
		}
		
		/*新着ブロック情報の返す*/
		return $shinchakuBlock;
	}
	
	/**
	* 新着物件データの分割サイズ取得(都道府県指定)
	*   ※データが0の際は、分割数は0になる
	* @access	public
	* @param	$tatemonoTypeCd 建物種別CD
	* @param	$cnt 取得件数
	* @return	array 新着データの分割サイズ
	*/
	public function getTodoufukenShinchakuCount($todoufukenCd)
	{
		/*変数の宣言*/
		$sql = "";					//SQL格納		
		$db_params = array();		//バインド変数を格納
		$result = array();			//SQL結果の格納
		$shinchakuCount = 0;		//新着ブロックデータ格納

		if(!empty($todoufukenCd)){
			/*新着情報をDBから取得*/
			//バインド変数を格納
			$db_params[":todoufukenCd"] = $todoufukenCd;	//取得する建物の都道府県CD

			//SQLの生成
			$sql .= " 	SELECT";
			$sql .= "         T03_MAX_CNT";
			$sql .= "     FROM";		
			$sql .= "         ASNFC_USER.T03SHINCHAKU_COUNT";
			$sql .= "     WHERE";
			$sql .= "         T03_TODOUFUKEN_CD = :todoufukenCd ";
			//echo $sql;exit;
			//print_r($db_params);
			
			//SQLの実行
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			//print_r($result);exit;
			
			/*新着部件数を取得*/
			if(count($result) > 0){
				$shinchakuCount = intval($result[0]['T03_MAX_CNT']);
			}
		}			
		/*新着ブロック情報の返す*/
		return $shinchakuCount;
	}

	/**
	* 新着物件データの分割サイズ取得(建物種別指定)
	*   ※データが0の際は、分割数は0になる
	* @access	public
	* @param	$tatemonoTypeCd 建物種別CD
	* @param	$cnt 取得件数
	* @return	array 新着データの分割サイズ
	*/
	public function getTatemonoTypeShinchakuCount($tatemonoTypeCd)
	{
		/*変数の宣言*/
		$sql = "";					//SQL格納		
		$db_params = array();		//バインド変数を格納
		$result = array();			//SQL結果の格納
		$shinchakuCount = 0;		//新着ブロックデータ格納

		if(!empty($tatemonoTypeCd)){
			/*新着情報をDBから取得*/
			//バインド変数を格納
			$db_params[":tatemonoTypeCd"] = $tatemonoTypeCd;	//取得する建物の建物種別CD

			//SQLの生成
			$sql .= " 	SELECT";
			$sql .= "         T03_MAX_CNT";
			$sql .= "     FROM";		
			$sql .= "         ASNFC_USER.T03SHINCHAKU_COUNT";
			$sql .= "     WHERE";
			$sql .= "         T03_TATEMONO_TYPE_CD = :tatemonoTypeCd ";
			//echo $sql;exit;
			//print_r($db_params);
			
			//SQLの実行
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			//print_r($result);exit;
			
			/*新着部件数を取得*/
			if(count($result) > 0){
				$shinchakuCount = intval($result[0]['T03_MAX_CNT']);
			}
		}			
		/*新着ブロック情報の返す*/
		return $shinchakuCount;
	}

	/**
	* 新着物件データの分割サイズ取得(こだわり指定)
	*   ※データが0の際は、分割数は0になる
	* @access	public
	* @param	$kodawariId こだわりID
	* @param	$cnt 取得件数
	* @return	$shinchakuCount 新着データの分割サイズ
	*/
	public function getKodawariShinchakuCount($kodawariId)
	{
		/*変数の宣言*/
		$sql = "";					//SQL格納		
		$db_params = array();		//バインド変数を格納
		$result = array();			//SQL結果の格納
		$shinchakuCount = 0;		//新着ブロックデータ格納

		if(!empty($kodawariId)){
			/*新着情報をDBから取得*/
			//バインド変数を格納
			$db_params[":kodawariId"] = $kodawariId;	//取得する物件のこだわりID

			//SQLの生成
			$sql .= " 	SELECT";
			$sql .= "         T03_MAX_CNT";
			$sql .= "     FROM";		
			$sql .= "         ASNFC_USER.T03SHINCHAKU_COUNT";
			$sql .= "     WHERE";
			$sql .= "         T03_KODAWARI_ID = :kodawariId ";
			//echo $sql;exit;
			//print_r($db_params);
			
			//SQLの実行
			$result = Apm_Util::dbGetList($sql, $db_params,$db);
			//print_r($result);exit;
			
			/*新着部件数を取得*/
			if(count($result) > 0){
				$shinchakuCount = intval($result[0]['T03_MAX_CNT']);
			}
		}			
		/*新着ブロック情報の返す*/
		return $shinchakuCount;
	}
	
	/**
	* 人気のこだわりデータ取得
	*
	* @access	public
	* @param	$cnt 取得件数
	*			$randCnt 上記以外のランダムこだわり取得件数
	*			$prefCd 都道府県CD
	* @return	array こだわりデータ
	*/
	public function getSeoImpKodawari($cnt, $randCnt=0, $prefCd='00')
	{
		if (empty($prefCd)) $prefCd = '00';
		// 人気のこだわりID取得
		$arrSeoImp = array_slice(Apm_Config_Seo::$KODAWARI_IMP[$prefCd], 0, $cnt);
		// ランダムこだわり取得
		if ($randCnt > 0) {
			// 全こだわり取得
			$arrKodawari  = Apm_Config_Search::$KODAWARI_ID_STR_LIST;
			// 人気のこだわりIDを除外
			foreach ($arrSeoImp as $kodawariId) {
				unset($arrKodawari[$kodawariId]);
			}
			// SEO対象外リストを除外
			foreach (Apm_Config_Search::$KODAWARI_SEO_NG_LIST as $kodawariId) {
				unset($arrKodawari[$kodawariId]);
			}
			// ランダム抽出
			if (count($arrKodawari) > $randCnt) {
				$arrOther = array_rand($arrKodawari, $randCnt);
			} else {
				$arrOther = array_keys($arrKodawari);
				shuffle($arrOther);
			}
			// 結合
			$arrSeoImp = array_merge($arrSeoImp, $arrOther);
		}
		
		// URL用パラメータ取得
		$params = array();
		$Pattern = "";
		$Category = "";
		if ($prefCd == '00') {
			$Pattern  = 'kodawari';
			$Category = '1';
		} else {
			$model_area = new Search_Model_Selareasearch();
			$area = $model_area->getSimpleArea($prefCd);
			$params['AreaName'] = $area['M01_AREA_ROMAN_NAME'];
			$params['PrefName'] = Apm_Config_Search::$TODOUFUKEN_NAME_CODE_LIST[$prefCd];
			$Pattern  = 'x4';
			$Category = '2';
		}
		
		// こだわり配列生成
		$arrKodawari = array();
		foreach ($arrSeoImp as $kodawariId) {
			// URL生成
			$url = '';
			$params['KodawariId'] = $kodawariId;
			$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern, $Category);
			// 配列化
			$arrKodawari[] = array(
				'CD'   => $kodawariId,
				'NAME' => Apm_Config_Search::$KODAWARI_ID_STR_LIST[$kodawariId],
				'URL'  => $url
			);
		}
		return $arrKodawari;
	}

	/**
	* こだわりランキングデータ取得
	*
	* @access	public
	* @param	$prefCd 都道府県CD
	* @return	array 建物種別データ
	*/
	public function getSeoRankingKodawari($cnt, $randCnt=0, $prefCd='00')
	{
		// こだわり検索
		$seo_data = array();
		$seo_data['TITLE'] = '賃貸をこだわりで絞り込む';
		$seo_data['DATA']  = Apm_Seo::getSeoImpKodawari($cnt, $randCnt, $prefCd);
		
		return $seo_data;
	}

	/**
	* 建物種別リンクデータ取得
	*
	* @access	public
	* @param	$params パラメータ
	* @return	array 建物種別データ
	*/
	public function getSeoRankingType($params, $prefCd='00')
	{
		// パラメータセット
		$seo_params = $params;
		$seo_data   = array();
		$coss_type  = array();
		// 不要なパラメータ削除
		if (isset($seo_params['KodawariId'])) unset($seo_params['KodawariId']);
		if (isset($seo_params['SiteitosiCd'])) unset($seo_params['SiteitosiCd']);
		if (isset($seo_params['CityCd'])) unset($seo_params['CityCd']);
		if (isset($seo_params['TownCd'])) unset($seo_params['TownCd']);
		if (isset($seo_params['RailCd'])) unset($seo_params['RailCd']);
		if (isset($seo_params['StCt'])) unset($seo_params['StCt']);
		// 都道府県取得
		$PrefNm = '';
		if (empty($seo_params['PrefCd'][0]) && $prefCd != '00') $seo_params['PrefCd'][0] = $prefCd;
		if (!empty($seo_params['PrefCd'][0])) {
			$PrefNm = Apm_Config_Shop::$PREF_LIST[$seo_params['PrefCd'][0]];
			if (!empty($PrefNm)) $PrefNm.='の';
			// エリア名が無ければ取得
			if (empty($seo_params['AreaName'])) {
				$model_area = new Search_Model_Selareasearch();
				$area = $model_area->getSimpleArea($seo_params['PrefCd'][0]);
				$seo_params['AreaName'] = $area['M01_AREA_ROMAN_NAME'];
			}
			if (empty($seo_params['PrefName'])) {
				$seo_params['PrefName'] = Apm_Config_Search::$TODOUFUKEN_NAME_CODE_LIST[$seo_params['PrefCd'][0]];
			}
		}
		// 建物種別検索
		Apm_Seo::generateTypeBlock($coss_type, $seo_params, array());
		
		// データ変換
		$seo_data['TITLE'] = '建物種別から絞り込む';
		$seo_data['DATA']  = array();
		foreach ($coss_type['CrossType']['DATA'] as $data) {
			$seo_data['DATA'][] = array(
				'NAME' => $PrefNm.$data['DISP_NAME'],
				'URL'  => $data['STATIC_URL']
			);
		}
		
		return $seo_data;
	}

	/**
	* 人気のエリアデータ検索用SQL文の取得
	*
	* 人気のエリアデータ検索用SQL文の取得を行う
	* @access	public
	* @param	array
	* @return	string 人気のエリアデータ検索用SQL
	*/
	public function generatePopJyusyoSql($params,&$db_params)
	{
		$db_params['strPrefCd'] = $params['PrefCd'][0];
		$db_params['strTypeCd'] = $params['TatemonoTypeCd'];
		//$db_params['strKodawariId'] = $params['KodawariId'];

		$sql = "";
		$sql .= "SELECT DISTINCT";
		$sql .= "     AREA.M01_AREA_CD AREA_CD";
		$sql .= "    ,AREA.M01_AREA_NAME AREA_NAME";
		$sql .= "    ,AREA.M01_AREA_ROMAN_NAME AREA_ROMAN_NAME";
		$sql .= "    ,M01.M01_TODOUFUKEN_CD TODOUFUKEN_CD";
		$sql .= "    ,M01.M01_TODOUFUKEN TODOUFUKEN";
		$sql .= "    ,M01.M01_TODOUFUKEN_CD || M01.M01_SHIKUCHOUSON_CD SHIKUCHOUSON_CD";
		$sql .= "    ,M01.M01_SHIKUCHOUSON SHIKUCHOUSON_NAME";
		$sql .= "    ,null SITEITOSI_CD";
		$sql .= "    ,null SITEITOSI_ROMAN";
		$sql .= "    ,M97.M97_ORDER_NO";
		$sql .= " FROM";
		$sql .= "     M97POPULAR_PAGE M97";
		$sql .= "    ,M01JYUUSHO M01";
		$sql .= "    ,M01AREA AREA";
		$sql .= " WHERE";
		$sql .= "    M97.M97_PAGE_KBN = '4'";
		$sql .= "    AND M97.M97_PAGE_CD = M01.M01_TODOUFUKEN_CD || M01.M01_SHIKUCHOUSON_CD";
		$sql .= "    AND M01.M01_TODOUFUKEN_CD = AREA.M01_TODOUFUKEN_CD ";
		$sql .= "    AND M97.M97_TODOUFUKEN_CD = :strPrefCd ";
		$sql .= "    AND M97.M97_TATEMONO_TYPE_CD = :strTypeCd ";
		//$sql .= "    AND M97.M97_KODAWARI_CD = :strKodawariId ";
		$sql .= "    AND M97.M97_ORDER_NO <= 10";

		$sql .= " UNION ALL ";

		$sql .= "SELECT DISTINCT";
		$sql .= "     AREA.M01_AREA_CD AREA_CD";
		$sql .= "    ,AREA.M01_AREA_NAME AREA_NAME";
		$sql .= "    ,AREA.M01_AREA_ROMAN_NAME AREA_ROMAN_NAME";
		$sql .= "    ,M44.M44_TODOUFUKEN_CD TODOUFUKEN_CD";
		$sql .= "    ,null TODOUFUKEN";
		$sql .= "    ,null SHIKUCHOUSON_CD";
		$sql .= "    ,M44.M44_SITEITOSI SHIKUCHOUSON_NAME";
		$sql .= "    ,M44.M44_SITEITOSI_CD SITEITOSI_CD";
		$sql .= "    ,M44.M44_SITEITOSI_ROMAN SITEITOSI_ROMAN";
		$sql .= "    ,M97.M97_ORDER_NO";
		$sql .= " FROM";
		$sql .= "     M97POPULAR_PAGE M97";
		$sql .= "    ,M44SITEITOSI M44";
		$sql .= "    ,M01AREA AREA";
		$sql .= " WHERE";
		$sql .= "    M97.M97_PAGE_KBN = '4'";
		$sql .= "    AND M97.M97_PAGE_CD = M44.M44_SITEITOSI_CD";
		$sql .= "    AND M44.M44_TODOUFUKEN_CD = AREA.M01_TODOUFUKEN_CD ";
		$sql .= "    AND M97.M97_TODOUFUKEN_CD = :strPrefCd ";
		$sql .= "    AND M97.M97_TATEMONO_TYPE_CD = :strTypeCd ";
		//$sql .= "    AND M97.M97_KODAWARI_CD = :strKodawariId ";
		$sql .= "    AND M97.M97_ORDER_NO <= 10";

		$sql .= "    ORDER BY";
		$sql .= "        M97_ORDER_NO";

		return $sql;
	}

	/**
	* 注目のエリアデータ取得
	*
	* @access	public
	* @param	array
	* @return	array
	*/
	public function getNoticeArea($params, $cnt=10)
	{
		$db_params = array();
		$sql = Apm_Seo::generateNoticeAreaSql($params, $db_params, $cnt);
		return Apm_Util::dbGetList($sql,$db_params,self::$_db);
	}

	/**
	 * 沿線データ検索用SQL文の取得
	 *
	 * @access	public
	 * @param	array
	 * @return	string 沿線データ検索用SQL
	 */
	public function generateEnsenByEkiCdSql($params,&$db_params)
	{

		foreach($params["StCd"] as $key => $val){
			$db_params['StCd_' . $key] = $val;
		}

		$sql = "";
		$sql .= "SELECT DISTINCT";
		$sql .= "         M03_ENSEN_CD";
		$sql .= "        ,to_single_byte(M03_ENSEN_NAME) M03_ENSEN_NAME";
		$sql .= "        ,to_single_byte(M03_ENSEN_RYAKU) M03_ENSEN_RYAKU";
		$sql .= "    FROM";
		$sql .= "        M03EKI";
		$sql .= "    WHERE";
		$sql .= "        M03_RENRAKU_EKI_CD IN";
		$sql .= "            ( SELECT ";
		$sql .= "                M03_RENRAKU_EKI_CD";
		$sql .= "            FROM";
		$sql .= "                M03EKI";
		$sql .= "            WHERE";
		$sql .= "                M03_EKI_CD IN (";

		foreach($db_params as $key => $val){
			$sql .= $conmma . ':' . $key ;
			$conmma = ",";
		}
		$sql .= "                )";
		$sql .= "                AND M03_RENRAKU_EKI_CD IS NOT NULL";
		$sql .= "            )";
		$sql .= "    ORDER BY";
		$sql .= "        M03_ENSEN_CD";

		return $sql;
	}

	/**
	 * 人気の街データ検索用SQL文の取得
	 *
	 * 人気の街名データ検索用SQL文の取得を行う
	 * @access	public
	 * @param	array
	 * @return	string 人気の駅名データ検索用SQL
	 */
	public function generatePopChouSql($params, &$db_params, $cnt)
	{
	    $db_params['strPrefCd'] = $params['PrefCd'][0];
	    $db_params['cnt'] = $cnt;
	
	    $sql = "";
	    $sql .= "SELECT";
	    $sql .= "        T55_TODOUFUKEN_CD TODOUFUKEN_CD";
	    $sql .= "        ,T55_SHIKUCHOUSON_CD SHIKUCHOUSON_CD";
	    $sql .= "        ,T55_CHOUMEI_CD CHOUMEI_CD";
	    $sql .= "        ,T55_CHOUMEI CHOUMEI";
	    $sql .= "    FROM";
	    $sql .= "        T55CHOUMEI_SUM";
	    $sql .= "    WHERE";
	    $sql .= "        T55_TODOUFUKEN_CD = :strPrefCd ";
	    $sql .= "        AND T55_CHOUMEI_CNT > 0 ";
	    $sql .= "    ORDER BY";
	    $sql .= "        DBMS_RANDOM.RANDOM";
	    $sql = "SELECT * FROM (".$sql.") WHERE ROWNUM <= :cnt";
	    return $sql;
	}
	
    /**
	* 人気の駅名データ検索用SQL文の取得
	*
	* 人気の駅名データ検索用SQL文の取得を行う
	* @access	public
	* @param	array
	* @return	string 人気の駅名データ検索用SQL
	*/
	public function generatePopEkiSql($params, &$db_params, $cnt)
	{
		$db_params['strPrefCd'] = $params['PrefCd'][0];
		$db_params['cnt'] = $cnt;

		$sql = "";
		$sql .= "SELECT";
		$sql .= "        M03_ENSEN_CD ENSEN_CD";
		$sql .= "        ,M03_EKI_CD EKI_CD";
		$sql .= "        ,to_single_byte(nvl(M03_EKI_ALIAS,M03_EKI_NAME)) EKI_NAME";
		$sql .= "        ,M03_TODOUFUKEN_CD TODOUFUKEN_CD";
		$sql .= "    FROM";
		$sql .= "        M97POPULAR_PAGE";
		$sql .= "        ,M03EKI";
		$sql .= "    WHERE";
		$sql .= "        M97_PAGE_KBN = '2'";
		$sql .= "        AND M97_PAGE_CD = M03_EKI_CD";
		$sql .= "        AND M97_ORDER_NO <= :cnt ";
		$sql .= "        AND M97_TODOUFUKEN_CD = :strPrefCd ";
		$sql .= "    ORDER BY";
		$sql .= "        DBMS_RANDOM.RANDOM";

		return $sql;
	}

    /**
	* 人気の沿線データ検索用SQL文の取得
	*
	* 人気の沿線データ検索用SQL文の取得を行う
	* @access	public
	* @param	array
	* @return	string 人気の沿線データ検索用SQL
	*/
	public function generatePopEnsenSql($params, &$db_params, $cnt)
	{
		$db_params['strPrefCd'] = $params['PrefCd'][0];
		$db_params['cnt'] = $cnt;

		$sql = "";
		$sql .= "SELECT";
		$sql .= "        M02_ENSEN_CD T57_ENSEN_SHIKUCHOUSON_CD";
		$sql .= "        ,to_single_byte(M02_ENSEN_NAME) T57_ENSEN_SHIKUCHOUSON_NAME";
		$sql .= "        ,M02_ENSEN_KUBUN ENSEN_KUBUN";
		$sql .= "        ,M97_TODOUFUKEN_CD TODOUFUKEN_CD";
		$sql .= "    FROM";
		$sql .= "        M97POPULAR_PAGE";
		$sql .= "        ,M02ENSEN";
		$sql .= "    WHERE";
		$sql .= "        M97_PAGE_KBN = '1'";
		$sql .= "        AND M97_PAGE_CD = M02_ENSEN_CD";
		$sql .= "        AND M97_ORDER_NO <= :cnt ";
		$sql .= "        AND M97_TODOUFUKEN_CD = :strPrefCd ";
		$sql .= "    ORDER BY";
		$sql .= "        M97_ORDER_NO";

		return $sql;
	}

    /**
	* 人気のこだわりデータ検索用SQL文の取得
	*
	* 人気のこだわりデータ検索用SQL文の取得を行う
	* @access	public
	* @param	array
	* @return	string 人気のこだわりデータ検索用SQL
	*/
	public function generatePopKodawariSql($params,&$db_params)
	{
		$db_params['strPrefCd'] = $params['PrefCd'][0];

		$sql = "";
		$sql .= "SELECT";
		$sql .= "        M97_PAGE_CD KODAWARI_CD";
		$sql .= "        ,M97_TODOUFUKEN_CD TODOUFUKEN_CD";
		$sql .= "    FROM";
		$sql .= "        M97POPULAR_PAGE";
		$sql .= "    WHERE";
		$sql .= "        M97_PAGE_KBN = '3'";
		$sql .= "        AND M97_TODOUFUKEN_CD = :strPrefCd ";
		
		$sql .= "        AND M97_PAGE_CD not in (";
		$ix = "";
		foreach (Apm_Config_Search::$KODAWARI_SEO_NG_LIST as $value)
		{
			$sql .= $ix . $value;
			$ix = ",";
		}
		$sql .= "        )";
		$sql .= "    ORDER BY";
		$sql .= "        M97_ORDER_NO";
		
		return $sql;
	}

	/**
	 * 他のこだわりデータ検索用SQL文の取得
	 *
	 * こだわり一覧データ検索用SQL文の取得を行う
	 * @access	public
	 * @param	array
	 * @param	array
	 * @return	string こだわりデータ検索用SQL
	 */
	public function generateTop20Kodawari()
	{
		$sql = "";
		$sql .= "SELECT ";
		$sql .= "    W74_KODAWARI_ID AS KODAWARI_CD,";
		$sql .= "    W74_KODAWARI_NAME AS DISP_NAME ";
		$sql .= "FROM ";
		$sql .= "    W74KODAWARI ";
		$sql .= "  , M45KODAWARI_TYPE ";
		$sql .= "WHERE  ";
		$sql .= "    W74_KODAWARI_TYPE <> 0 ";
		$sql .= "AND W74_KODAWARI_TYPE = M45_KODAWARI_TYPE ";
		$sql .= "ORDER BY ";
		$sql .= "    W74_PRIORITY_NO,";
		$sql .= "    M45_PRIORITY_NO ";
	
		return 'SELECT * FROM (' . $sql . ') WHERE ROWNUM < 20';
	}
	
	/**
	* 他のこだわりデータ検索用SQL文の取得
	*
	* こだわり一覧データ検索用SQL文の取得を行う
	* @access	public
	* @param	array
	* @param	array
	* @return	string こだわりデータ検索用SQL
	*/
	public function generateOtherKodawariSql($params, &$db_params)
	{
		$sql  = "";
		$sql .= "SELECT";
		$sql .= "     A04_KODAWARI_CD as KODAWARI_CD";
		$sql .= "    ,SUM(A04_BUKKEN_CNT) as CNT";
		$sql .= "  FROM";
		$sql .= "    A04KODAWARI_BUKKEN_COUNT";
		$sql .= " WHERE";
		$sql .= "    A04_KODAWARI_CD not in (";
		$ix = "";
		foreach (Apm_Config_Search::$KODAWARI_SEO_NG_LIST as $value)
		{
			$sql .= $ix . $value;
			$ix = ",";
		}
		$sql .= "    )";
		if (!empty($params['PrefCd']))
		{
			$sql .= " AND A04_TODOUFUKEN_CD = :PrefCd";
			if (is_array($params['PrefCd'])) {
				$db_params['PrefCd'] = $params['PrefCd'][0];
			} else {
				$db_params['PrefCd'] = $params['PrefCd'];
			}

			if (!empty($params['CityCd'])) {
				$sql .= " AND A04_SHIKUCHOUSON_CD = :CityCd";
				if (is_array($params['CityCd'])) {
					$db_params['CityCd'] = $params['CityCd'][0];
				} else {
					$db_params['CityCd'] = $params['CityCd'];
				}
			}
		}
		$sql .= " GROUP BY";
		$sql .= "     A04_KODAWARI_CD";
		$sql .= " ORDER BY";
		$sql .= "     CNT";

		return $sql;
	}

	/**
	* 他の沿線データ検索用SQL文の取得
	*
	* 沿線一覧データ検索用SQL文の取得を行う
	* @access	public
	* @param	array
	* @param	array
	* @return	string 沿線データ検索用SQL
	*/
	public function generateOtherEnsenSql($params, &$db_params, $cnt)
	{
		$sql  = '';
		$sql .= "SELECT";
		$sql .= "       M02_ENSEN_CD ";
		$sql .= "      ,M02_ENSEN_KUBUN ";
		$sql .= "      ,M02_ENSEN_KANA ";
		$sql .= "      ,to_single_byte(M02_ENSEN_NAME) M02_ENSEN_NAME ";
		$sql .= "  FROM";
		$sql .= "  (";
		$sql .= "    SELECT";
		$sql .= "           M02_ENSEN_CD ";
		$sql .= "          ,M02_ENSEN_KUBUN ";
		$sql .= "          ,M02_ENSEN_KANA ";
		$sql .= "          ,M02_ENSEN_NAME ";
		$sql .= "          ,case WHEN M02_ENSEN_CD - :RailCd >= 0 then M02_ENSEN_CD - :RailCd else 9999 + M02_ENSEN_CD end AS RANK ";
		$sql .= "      FROM";
		$sql .= "           M02ENSEN";
		$sql .= "          ,M04ENSEN_AREA";
		$sql .= "     WHERE";
		if (is_array($params['PrefCd'])) {
			$sql .= "      (";
			// 都道府県ループ
			$strOr = "";
			foreach($params['PrefCd'] as $key => $val)
			{
				$sql .= $strOr." M04_TODOUFUKEN_CD = :strPrefCd_".$key;
				$strOr = " OR";
				// パラメータ
				$db_params['strPrefCd_'.$key] = $val;
			}
			$sql .= "      )";
		} else {
				$sql .= "   M04_TODOUFUKEN_CD = :strPrefCd_0";
				// パラメータ
				$db_params['strPrefCd_0'] = $params['PrefCd'];
		}
		$sql .= "       AND M02_ENSEN_CD = M04_ENSEN_CD ";
		$sql .= "       AND M02_ENSEN_CD <> '9999' ";
		$sql .= "     ORDER BY";
		$sql .= "           RANK ";
		$sql .= "  )";
		$sql .= " WHERE";
		$sql .= "       ROWNUM <= :cnt ";
		$sql .= " ORDER BY";
		$sql .= "       M02_ENSEN_CD";

		if (is_array($params['RailCd'])) {
			$db_params['RailCd'] = $params['RailCd'][0];
		} else {
			$db_params['RailCd'] = $params['RailCd'];
		}
		$db_params['cnt'] = $cnt;

		return $sql;
	}

	/**
	* 周辺の駅データ検索用SQL文の取得
	*
	* 周辺の駅データ検索用SQL文の取得を行う
	* @access	public
	* @param	array
	* @param	array
	* @return	string 駅データ検索用SQL
	*/
	public function generateAroundEkiSql($params, &$db_params, $cnt)
	{
		$sql  = "";
		$sql .= "SELECT";
		$sql .= "     M03_ENSEN_CD";
		$sql .= "    ,to_single_byte(M03_ENSEN_NAME) M03_ENSEN_NAME";
		$sql .= "    ,M03_EKI_CD";
		$sql .= "    ,to_single_byte(M03_EKI_NAME) M03_EKI_NAME";
		$sql .= "  FROM";
		$sql .= "  (";
		$sql .= "    SELECT";
		$sql .= "         M03_ENSEN_CD";
		$sql .= "        ,M03_ENSEN_NAME";
		$sql .= "        ,M03_EKI_CD";
		$sql .= "        ,nvl(M03_EKI_ALIAS,M03_EKI_NAME) M03_EKI_NAME";
		$sql .= "        ,row_number() over (order by ABS(M03_EKI_CD - :StCd)) as NUM";
		$sql .= "      FROM";
		$sql .= "         M03EKI";
		$sql .= "     WHERE";
		$sql .= "         M03_ENSEN_CD = :RailCd";
		$sql .= "  )";
		$sql .= " WHERE";
		$sql .= "     NUM <= :cnt";
		$sql .= " ORDER BY";
		$sql .= "     M03_EKI_CD";

		if (is_array($params['StCd'])) {
			$db_params['StCd'] = $params['StCd'][0];
		} else {
			$db_params['StCd'] = $params['StCd'];
		}
		if (is_array($params['RailCd'])) {
			$db_params['RailCd'] = $params['RailCd'][0];
		} else {
			$db_params['RailCd'] = $params['RailCd'];
		}
		$db_params['cnt'] = $cnt;

		return $sql;
	}

	/**
	* 周辺のエリアデータ検索用SQL文の取得
	*
	* 周辺のエリアデータ検索用SQL文の取得を行う
	* @access	public
	* @param	array
	* @param	array
	* @return	string エリアデータ検索用SQL
	*/
	public function generateAroundAreaSql($params, &$db_params, $Category, $cnt)
	{
		$sql  = "";
		$sql .= "SELECT * FROM (";
		$sql .= "SELECT";
		$sql .= "       AREA_CD";
		$sql .= "      ,to_single_byte(AREA_NM) AREA_NM";
		if ($Category == '4') {
			$sql .= "      ,case WHEN CHOUMEI_CD >= :TownCd then ROWNUM  else 9999 + ROWNUM end as RANK";
		}
		$sql .= "  FROM";
		$sql .= "  (";
		$sql .= "    SELECT";
		if ($Category == '3') {
			$sql .= "       distinct M01_TODOUFUKEN_CD || M01_SHIKUCHOUSON_CD as AREA_CD";
			$sql .= "      ,M01_SHIKUCHOUSON as AREA_NM";
			$sql .= "      ,case WHEN M01_SHIKUCHOUSON_CD - :CityCd >= 0 then M01_SHIKUCHOUSON_CD - :CityCd else 999 + M01_SHIKUCHOUSON_CD end as RANK";
		} else if ($Category == '4') {
			$sql .= "       distinct M01_TODOUFUKEN_CD || M01_SHIKUCHOUSON_CD || M01_CHOUMEI_CD as AREA_CD";
			$sql .= "      ,M01_CHOUMEI as AREA_NM";
			$sql .= "      ,M01_CHOUMEI_CD as CHOUMEI_CD";
		}
		$sql .= "      FROM";
		$sql .= "           M01JYUUSHO";
		$sql .= "     WHERE";
		$sql .= "           M01_TODOUFUKEN_CD = :PrefCd";
		if ($Category == '4') {
			$sql .= "   AND M01_SHIKUCHOUSON_CD = :CityCd";
		}
		if ($Category == '3') {
			$sql .= "     ORDER BY";
			$sql .= "           RANK";
		} else if ($Category == '4') {
			$sql .= "     ORDER BY";
			$sql .= "           AREA_CD";
		}
		$sql .= "  )";
		//if ($Category == '3') {
		//	$sql .= " ORDER BY";
		//	$sql .= "       AREA_CD";
		//} else if ($Category == '4') {
			$sql .= " ORDER BY";
			$sql .= "       RANK";
		//}
		$sql .= "  )";
		$sql .= " WHERE";
		$sql .= "       ROWNUM <= :cnt";

		if ($Category == '3') {
			if (is_array($params['CityCd'])) {
				$cityCd = $params['CityCd'][0];
			} else {
				$cityCd = $params['CityCd'];
			}
			$db_params['PrefCd'] = substr($cityCd, 0, 2);
			$db_params['CityCd'] = substr($cityCd, 2, 3);
		} else if ($Category == '4') {
			if (is_array($params['TownCd'])) {
				$townCd = $params['TownCd'][0];
			} else {
				$townCd = $params['TownCd'];
			}
			$db_params['PrefCd'] = substr($townCd, 0, 2);
			$db_params['CityCd'] = substr($townCd, 2, 3);
			$db_params['TownCd'] = substr($townCd, 5, 3);
		}
		$db_params['cnt'] = $cnt;

		return $sql;
	}

	/**
	* 注目のエリアデータ検索用SQL文の取得
	*
	* 注目のエリアデータ検索用SQL文の取得を行う
	* @access	public
	* @param	array
	* @param	array
	* @return	string エリアデータ検索用SQL
	*/
	public function generateNoticeAreaSql($params, &$db_params, $cnt)
	{
		$sql  = "";
		$sql .= "SELECT";
		$sql .= "     M98_CHOUMEI_CD as CHOUMEI_CD";
		$sql .= "    ,to_single_byte(M98_CHOUMEI) as CHOUMEI";
		$sql .= "  FROM";
		$sql .= "     M98NOTICE_AREA";
		$sql .= " WHERE";
		if (is_array($params['CityCd'])) {
			$sql .= " (";
			$strOr = "";
			foreach ($params['CityCd'] as $key => $val) {
				$sql .= $strOr." (";
				$sql .= " M98_TODOUFUKEN_CD = :PrefCd".$key;
				$sql .= " AND M98_SHIKUCHOUSON_CD = :CityCd".$key;
				$sql .= " )";
				$strOr = " OR ";
				$db_params['PrefCd'.$key] = substr($val, 0, 2);
				$db_params['CityCd'.$key] = substr($val, 2);
			}
			$sql .= " )";
		} else {
			$sql .= " M98_TODOUFUKEN_CD = :PrefCd";
			$sql .= " AND M98_SHIKUCHOUSON_CD = :CityCd";
			$db_params['PrefCd'] = substr($params['CityCd'], 0, 2);
			$db_params['CityCd'] = substr($params['CityCd'], 2);
		}
		$sql .= " AND M98_ORDER_NO <= :cnt";
		$sql .= " ORDER BY";
		$sql .= "     M98_ORDER_NO";
		$db_params['cnt'] = $cnt;

		return $sql;
	}

	/**
	* 沿線のエリア・都道府県データ検索用SQL文の取得
	*
	* 沿線のエリア・都道府県データ検索用SQL文の取得を行う
	* @access	public
	* @param	array
	* @return	string 沿線データ検索用SQL
	*/
	public function generateEnsenAreaSql($params,&$db_params)
	{
		//$db_params['strRailCd'] = $params['RailCd'][0];

		$sql = "";
		$sql .= "SELECT DISTINCT";
		$sql .= "        M04_TODOUFUKEN_CD";
		$sql .= "       ,M43_TODOUFUKEN";
		$sql .= "    FROM";
		$sql .= "        M04ENSEN_AREA";
		$sql .= "    RIGHT JOIN";
		$sql .= "        M43TODOUFUKEN";
		$sql .= "    ON";
		$sql .= "        M04_TODOUFUKEN_CD = M43_TODOUFUKEN_CD";
		$sql .= "    WHERE";
		$sepa = "";
		foreach ($params['RailCd'] as $key => $railCd)
		{
			$db_params['strRailCd_'.$key] = $railCd;
			$sql .= $sepa." M04_ENSEN_CD = :strRailCd_".$key;
			$sepa = " OR ";
		}
		$sql .= "    ORDER BY";
		$sql .= "        M04_TODOUFUKEN_CD";

		return $sql;
	}

	/**
	 * こだわり条件一覧LINK作成
	 * 
	 * @access  public static
	 * @param array &$data
	 * @param array $params パラメータ
	 * @param array $meta_data メタデータ
	 */
	public static function generateKodawariJyokenBlock(&$data, $params=array())
	{
		$kodawariList = Apm_Config_Search::$KODAWARI_ID_STR_LIST;
		if (empty($params['Pattern'])) {
			foreach ($kodawariList as $key => $value) {
				// 除外リストを飛ばす
				if (in_array($key, Apm_Config_Search::$KODAWARI_SEO_NG_LIST)) continue;
				$data["seo_kodawari"][] = array(
					'ID'        => $key,
					'STATIC_URL'=> Apm_Bukkenurl::generateUrlByParametersKodawari(Array('KodawariId'=>$key)) ,
					'DISP_NAME'	=> $value
				);
			}
		} else {
			foreach ($kodawariList as $key => $value) {
				// 除外リストを飛ばす
				if (in_array($key, Apm_Config_Search::$KODAWARI_SEO_NG_LIST)) continue;
				$params['KodawariId'] = $key;
				$data["seo_kodawari"][] = array(
					'ID'        => $key,
					'STATIC_URL'=> Apm_Bukkenurl::generateUrlByParameters($params, $params['Pattern'], $params['Category']) ,
					'DISP_NAME'	=> $value
				);
			}
		}
	}
	
	/**
	 * 注目の新着物件情報ブロックを生成
	 * 
	 * @param array $data
	 * @param array $params
	 * @param string $SrhKbn
	 * @param array $meta_data
	 */
	public static function getNoticeNewBknBlock(&$data, $params, $SrhKbn, $meta_data)
	{
		// 2012/01/09 注目の新着物件を非表示
		return false;

		// 開発環境では重いのでスルー
		if (APPLICATION_ENV == 'development') { return false; }

		$notice_block = array();
		$title = '';
		$read  = '';

		// パターンを取得
		$Pattern = Apm_Bukkenurl::getParamPattern($params, $SrhKbn);

		if (empty($Pattern)) return $notice_block;

		// メタデータを生成
		if (empty($meta_data)) {
			$meta_data = Apm_Bukkenurl::setCommonMeta($SrhKbn, $params);
		}

		// パターン別に注目の新着物件情報を生成する
		switch ($Pattern)
		{
			// 住居形態TOP
			case 'type':
			// エリアCat1
			case 'chiiki_1':
			// エリアCat2
			case 'chiiki_2':
			// エリアCat2.5
			case 'chiiki_2.5':
			// こだわりCat1
			case 'kodawari_1':
			// 沿線・駅TOP
			case 'station_0':
			// 沿線・駅Cat1
			case 'station_1':
			// 沿線・駅Cat2
			case 'station_2':
			case 'station_2.5':
			// 住居形態×エリアCat1
			case 'x2_1':
			// 住居形態×エリアCat2
			case 'x2_2':
			// 住居形態×エリアCat2.5
			case 'x2_2.5':
			// 住居形態×こだわりCat1
			case 'x3':
			// エリアCat1×こだわりCat1
			case 'x4_1':
			// エリアCat2×こだわりCat1
			case 'x4_2':
			// エリアCat2.5×こだわりCat1
			case 'x4_2.5':
			// 住居形態×エリアCat1×こだわりCat1
			case 'x5_1':
			// 住居形態×エリアCat2×こだわりCat1
			case 'x5_2':
			// 住居形態×エリアCat2.5×こだわりCat1
			case 'x5_2.5':
				
				Apm_Seo::generateNoticeNewBknBlock($data, $params, $Pattern, $meta_data);
				break;
				
			//--- 以下注目の新着物件情報出力しない ---//
			// エリアCat3
			case 'chiiki_3':
			// エリアCat3（沿線・駅Cat3）
			case 'station_3':
			// エリアCat4
			case 'chiiki_4':
			// こだわりTOP
			case 'kodawari':
			// 住居形態×エリアCat3
			case 'x2_3':
			// 住居形態×エリアCat3（沿線・駅Cat3）
			case 'x2s':
			// 住居形態×エリアCat4
			case 'x2_4':
			// エリアCat3×こだわりCat1
			case 'x4_3':
			// エリアCat3（沿線・駅Cat3）×こだわりCat1
			case 'x4s':
			// エリアCat4×こだわりCat1
			case 'x4_4':
			// 住居形態×エリアCat3×こだわりCat1
			case 'x5_3':
			// 住居形態×エリアCat3（沿線・駅Cat3）×こだわりCat1
			case 'x5s':
			// 住居形態×エリアCat4×こだわりCat1
			case 'x5_4':

				break;

		}

		return $notice_block;		
	}
	
	/**
	 * 注目の新着物件情報取得
	 * 
	 * @param array $data
	 * @param array $params
	 * @param string $pattern
	 * @param array $meta_data
	 */
	public static function generateNoticeNewBknBlock(&$data, $params, $pattern, $meta_data) {
		
		// 作業配列
		$title = '';
		$read  = '';
		$blockDatas = array();

		// 注目の新着物件情報を取得する
		$data_list = Apm_Seo::getNoticeNewBkn($params,$pattern);

    	$loader = new Zend_Application_Module_Autoloader(array(
			'namespace' => 'Rstobi',
			'basePath' => APPLICATION_PATH . '/modules/rstobi',
		));
		$bknRecommObj = new Rstobi_Model_BknRecommend();
		
		$bknRecommObj->convertRecommendList($data_list);

		$title = $meta_data['page_title'] . ' 注目の新着物件情報';
		// リード文
		if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_TYPE, $meta_data)) {
			$read  = Apm_Config_Search::SEOSTR_AREA.'{ }'
					.Apm_Config_Search::ALIAS_KODAWARI.'{ }'.Apm_Config_Search::ALIAS_TYPE.' 注目の新着物件情報はこちらから。';
		} else {
			$read  = Apm_Config_Search::SEOSTR_AREA.'{ }'
					.Apm_Config_Search::SEOSTR_KODAWARI.'{ }'.'賃貸 注目の新着物件情報はこちらから。';
		}
		Apm_Bukkenurl::convertSeoText($read, $meta_data);

		$data = array('TITLE'=>$title, 'TEXT'=>$read, 'DATA'=>$data_list);
		
	}
	
	/**
	 * 注目の新着物件情報をランダムにデータベースより取得
	 * 
	 * @param array $params
	 * @param string $pattern
	 */
	private function getNoticeNewBkn($params, $pattern)
	{
		$db_params = array();
		
		// 新着情報を最大1000件取得
		$sql = Apm_Seo::genarateNoticeNewBknSql($params, $db_params, 1000, $pattern);
		$dbRtn = Apm_Util::dbGetList($sql,$db_params,self::$_db);
		
		// 取得したレコードを分析して抽出店舗が均等になるようにランダムに3件取得する
		$arrHeyaList = array();
		$arrTenpoList = array();
		$arrTenpoHeyaList = array();
		$tenpoCd = "";
		$heyaCd  = "";
		if (count($dbRtn) <= 3)
		{
			// 取得したレコードが3件以下の場合
			// そのまま出力する
			foreach($dbRtn as $value)
			{
				$arrHeyaList[] = array(
						 'T03_HEYA_CD'				=> $value['T03_HEYA_CD']
						,'T03_TATEMONO_CD'			=> $value['T03_TATEMONO_CD']
						,'T03_ORIGINAL_HEYA_CD01'	=> $value['T03_ORIGINAL_HEYA_CD01']
					);
			}
		} else {
			// 取得したレコードが4件以上の場合
			// リストを店舗別に分解
			foreach($dbRtn as $value)
			{
				if (!in_array($value['T03_TENPO_CD'], $arrTenpoList)) {
					$arrTenpoList[] = $value['T03_TENPO_CD'];
				}
				$tenpoCd = $value['T03_TENPO_CD'];
				$heyaCd  = $value['T03_HEYA_CD'];
				$arrTenpoHeyaList[$tenpoCd][$heyaCd]['T03_HEYA_CD']            = $value['T03_HEYA_CD'];
				$arrTenpoHeyaList[$tenpoCd][$heyaCd]['T03_TATEMONO_CD']        = $value['T03_TATEMONO_CD'];
				$arrTenpoHeyaList[$tenpoCd][$heyaCd]['T03_ORIGINAL_HEYA_CD01'] = $value['T03_ORIGINAL_HEYA_CD01'];
			}
			
			switch (count($arrTenpoList))
			{
				case 0:
					// 対象なし
					break;
				case 1:
					// 店舗数が1件の場合
					$arrHeyaList = Apm_Seo::randomGetList($arrTenpoHeyaList[$arrTenpoList[0]], 3);
					break;
				case 2:
					// 店舗数が2件の場合
					$tenpoCd1 = "";
					$tenpoCd2 = "";
					if (count($arrTenpoHeyaList[$arrTenpoList[0]]) > count($arrTenpoHeyaList[$arrTenpoList[1]])) {
						$tenpoCd1 = $arrTenpoList[1];
						$tenpoCd2 = $arrTenpoList[0];
					} else {
						$tenpoCd1 = $arrTenpoList[0];
						$tenpoCd2 = $arrTenpoList[1];
					}
					$arrHeyaList = Apm_Seo::randomGetList($arrTenpoHeyaList[$tenpoCd1], 2);
					$arrHeyaList = Apm_Seo::array_marge_x($arrHeyaList, Apm_Seo::randomGetList($arrTenpoHeyaList[$tenpoCd2], 3-count($arrHeyaList), $arrHeyaList));
					break;
				case 3:
					// 店舗数が3件の場合
					$arrHeyaList = Apm_Seo::randomGetList($arrTenpoHeyaList[$arrTenpoList[0]], 1);
					$arrHeyaList = Apm_Seo::array_marge_x($arrHeyaList, Apm_Seo::randomGetList($arrTenpoHeyaList[$arrTenpoList[1]], 1, $arrHeyaList));
					$arrHeyaList = Apm_Seo::array_marge_x($arrHeyaList, Apm_Seo::randomGetList($arrTenpoHeyaList[$arrTenpoList[2]], 1, $arrHeyaList));
										break;
				default:
					// 店舗数が3件より多いの場合、抽出する店舗をランダムに取得
					$tenpoCd = array_rand($arrTenpoList, 3);
					$arrHeyaList = Apm_Seo::randomGetList($arrTenpoHeyaList[$arrTenpoList[$tenpoCd[0]]], 1);
					$arrHeyaList = Apm_Seo::array_marge_x($arrHeyaList, Apm_Seo::randomGetList($arrTenpoHeyaList[$arrTenpoList[$tenpoCd[1]]], 1, $arrHeyaList));
					$arrHeyaList = Apm_Seo::array_marge_x($arrHeyaList, Apm_Seo::randomGetList($arrTenpoHeyaList[$arrTenpoList[$tenpoCd[2]]], 1, $arrHeyaList));
					break;
			}			
			
		}
		if (count($arrHeyaList) > 0) {
			$selectSql = Apm_Seo::genarateBknInfoHeyaCdSql($arrHeyaList, $selectDbParams);
			return Apm_Util::dbGetList($selectSql, $selectDbParams, self::$_db);
		} else {
			return $arrHeyaList;
		}
	}	

	/**
	* 表示する注目の新着物件をランダムで取得する
	*
	* @access	public
	* @param	array
	* @return	void
	*/
	private function randomGetList($bukkenData, $cnt, $errArray = array())
	{
		if(count($bukkenData) > $cnt)
		{
			// 除外リストを作成
			$errHyList = array();
			$errTmList = array();
			foreach ($errArray as $value) {
				$errHyList[] = $value['T03_ORIGINAL_HEYA_CD01'];
				$errTmList[] = $value['T03_TATEMONO_CD'];
			}
			
			// 配列から、除外リストにない建物・部屋を取得する
			$retBukenData = array();
			$retBukenKey  = array();
			$dataCnt = 0;
			$randBukkenData = array();
			$randBukkenData = array_rand($bukkenData, $cnt);
			if ($cnt > 1) {
				//抽出件数が2件以上の場合
				foreach ($randBukkenData as $key => $value)
				{
					if (!in_array($bukkenData[$value]['T03_ORIGINAL_HEYA_CD01'], $errHyList) && !in_array($bukkenData[$value]['T03_TATEMONO_CD'], $errTmList))
					{
						$retBukenData[] = $bukkenData[$value];
						$retBukenKey[]  = $value;
						$errHyList[]    = $bukkenData[$value]['T03_ORIGINAL_HEYA_CD01'];
						$errTmList[]    = $bukkenData[$value]['T03_TATEMONO_CD'];
						$dataCnt++;
						if ($dataCnt >= $cnt) {
							break;
						}
					}
				}
			} else {
				//抽出件数が1件の場合
					$retBukenData[] = $bukkenData[$randBukkenData];
					$retBukenKey[]  = $randBukkenData;
					$errHyList[]    = $bukkenData[$randBukkenData]['T03_ORIGINAL_HEYA_CD01'];
					$errTmList[]    = $bukkenData[$randBukkenData]['T03_TATEMONO_CD'];
					$dataCnt++;
				
			}
			
			// 抽出物件が足りない場合、ランダムで追加する
			if ($dataCnt < $cnt)
			{
				// 既に抽出しているデータを配列から削除
				foreach ($retBukenKey as $key) {
					unset($bukkenData[$key]);
				}
				// 足りない分をランダムに抽出
				$randomKey = array_rand($bukkenData, $cnt-$dataCnt);
				if (is_array($randomKey)) {
					foreach ($randomKey as $key) {
						$retBukenData[] = $bukkenData[$key];
					}
				} else if (!empty($randomKey)) {
						$retBukenData[] = $bukkenData[$randomKey];
				}
			}
		}
		else
		{
			return $bukkenData;
		}

		return $retBukenData;
	}	
	
	/**
	 * 注目の新着物件情報のコードを取得するSQL生成
	 * 
	 * @param array $params
	 * @param array $db_params
	 * @param int   $cnt
	 * @param string $pattern
	 */
	private function genarateNoticeNewBknSql($params, &$db_params, $cnt, $pattern) {

		//取得行数
		$db_params["cnt"] = $cnt;
		
		//SQL生成
    	$loader = new Zend_Application_Module_Autoloader(array(
			'namespace' => 'Rstobi',
			'basePath' => APPLICATION_PATH . '/modules/rstobi',
		));
	
		$bknRecommObj = new Rstobi_Model_BknRecommend();
		$rstobjCommon = new Rstobi_Model_Common();
		
		$sql   = "";
		$where = "";
		
		//パターン別検索条件生成
		$where .= " WHERE";
		$where .= "     ROWNUM <= :cnt ";
		$where .= " AND (sysdate - 4) < T03_KOUSHINBI ";    // 登録されて7日以内
		$where .= " AND T03_KIGENGIRE_SHUUSEI_FLAG <> 1 ";  // 期限切修正フラグが立っていない
		
		// パターン名を分解する [0]:pattern [1]:category
		$arrPattern = explode('_', $pattern);
		
		$sample_flag = 5;
		// エリアSQL
		if (!empty($arrPattern[1]) && $arrPattern[0] != 'station' && $arrPattern[0] != 'kodawari') {
			switch ($arrPattern[1])
			{
				case '1':
					//選択されている地域から抽出
					$db_params["AreaCd"] = $params["AreaCd"];
					
					$where .= " AND T03_TODOUFUKEN_CD IN";
					$where .= "      (SELECT";
					$where .= "        M01_TODOUFUKEN_CD";
					$where .= "      FROM M01AREA";
					$where .= "      WHERE";
					$where .= "        M01_AREA_CD = :AreaCd";
					$where .= "      )";
					$sample_flag = 5;
				break;

				case '2':
					//選択されている都道府県から抽出
					$where .= Apm_Seo::genarateNoticeNewBknPrefSql($params, $db_params);
					$sample_flag = 0;
				break;

				case '2.5':
					//選択されている政令指定都市から抽出
					$where .= Apm_Seo::genarateNoticeNewBknSeireisiteitosiSql($params, $db_params);
					$sample_flag = 0;
				break;
			}
		}
		// 沿線・駅SQL
		if (!empty($arrPattern[1]) && $arrPattern[0] == 'station') {
			switch ($arrPattern[1])
			{
				case '1':
					//選択されている都道府県から抽出
					$where .= Apm_Seo::genarateNoticeNewBknPrefSql($params, $db_params);
					$sample_flag = 0;
				break;

				case '2':
				case '2.5':
					//選択されている県、沿線から抽出
					$db_params["PrefCd"] = $params["PrefCd"][0];
					$db_params["RailCd"] = $params["RailCd"][0];
									
					$where .= " AND T03_TODOUFUKEN_CD = :PrefCd";
					$where .= " AND (";
					$where .= "      T03_ENSEN_CD01 = :RailCd";
					$where .= "   OR T03_ENSEN_CD02 = :RailCd";
					$where .= "   OR T03_ENSEN_CD03 = :RailCd";
					$where .= "   )";
					$sample_flag = 0;
				break;
			}
		}
		// 住居形態
		if ($arrPattern[0] == 'type' || $arrPattern[0] == 'x2' || $arrPattern[0] == 'x3' || $arrPattern[0] == 'x5') {
			//基本条件選択からSQL取得
			$where .= $rstobjCommon->getKihonWhere($params, $db_params, false);
		}
		// こだわり
		if ($arrPattern[0] == 'kodawari' || $arrPattern[0] == 'x3' || $arrPattern[0] == 'x4' || $arrPattern[0] == 'x5') {
			//こだわり条件SQL取得
			$where .= $rstobjCommon->getKihonWhere($params, $db_params, false);
			$where .= $rstobjCommon->getKodawariWhere($params, $db_params);
		}
		$where  = preg_replace("/T03\./i", "", $where);
		
		//$sql  = $bknRecommObj->getRecommendSelectPhrase_s();
		$sql .= "SELECT";
		$sql .= "   T03_HEYA_CD";
		$sql .= "  ,T03_TATEMONO_CD";
		$sql .= "  ,T03_TENPO_CD";
		$sql .= "  ,T03_ORIGINAL_HEYA_CD01 ";
		$sql .= " FROM T03WEB_HEYA";
		if ($sample_flag != 0) {
			$sql .= " SAMPLE($sample_flag)";
		}
		//$sql .= " T03";
		$sql .= $where;

/*
		switch ($pattern)
		{
			// 住居形態TOP
			case 'type':
				//選択されている住居形態から抽出
				
				//基本条件選択からSQL取得
				$sql .= $rstobjCommon->getKihonWhere($params, $db_params, false);
				
				break;
				
			// エリアCat1
			case 'chiiki_1':
				//選択されている地域から抽出
				$db_params["AreaCd"] = $params["AreaCd"];
				
				$sql .= "AND T03_TODOUFUKEN_CD IN";
				$sql .= "      (SELECT";
				$sql .= "        M01_TODOUFUKEN_CD";
				$sql .= "      FROM M01AREA";
				$sql .= "      WHERE";
				$sql .= "        M01_AREA_CD = :AreaCd";
				$sql .= "      )";

				break;

			// エリアCat2
			case 'chiiki_2':
				//選択されている都道府県から抽出
				$sql .= Apm_Seo::genarateNoticeNewBknPrefSql($params, $db_params);
				
				break;
				
			// エリアCat2.5
			case 'chiiki_2.5':
				//選択されている政令指定都市から抽出
				$sql .= Apm_Seo::genarateNoticeNewBknSeireisiteitosiSql($params, $db_params);
				
				break;
				
			// こだわりCat1
			case 'kodawari_1':
				//選択されているこだわり条件から抽出
				
				//こだわり条件SQL取得
				$sql .= $rstobjCommon->getKodawariWhere($params, $db_params);

				break;
				
			// 沿線・駅TOP
			case 'station_0':
				//全エリアから抽出
				//where条件の追加なし
				break;
				
			// 沿線・駅Cat1
			case 'station_1':
				//選択されている都道府県から抽出
				$sql .= Apm_Seo::genarateNoticeNewBknPrefSql($params, $db_params);
				
				break;
				
			// 沿線・駅Cat2
			case 'station_2':
				//選択されている県から抽出
				
				// station_2.5と同一の動作をさせる
				//break;
				
			case 'station_2.5':
				//選択されてい県、沿線から抽出
				$db_params["PrefCd"] = $params["PrefCd"][0];
				$db_params["RailCd"] = $params["RailCd"][0];
								
				$sql .= " AND T03_TODOUFUKEN_CD = :PrefCd";
				$sql .= " AND (";
				$sql .= "      T03_ENSEN_CD01 = :RailCd";
				$sql .= "   OR T03_ENSEN_CD02 = :RailCd";
				$sql .= "   OR T03_ENSEN_CD03 = :RailCd";
				$sql .= "   )";
				
				break;
				
			// 住居形態×エリアCat1
			case 'x2_1':
				//選択されている地域から抽出
				$db_params["AreaCd"] = $params["AreaCd"];
				
				$sql .= "AND T03_TODOUFUKEN_CD IN";
				$sql .= "      (SELECT";
				$sql .= "        M01_TODOUFUKEN_CD";
				$sql .= "      FROM M01AREA";
				$sql .= "      WHERE";
				$sql .= "        M01_AREA_CD = :AreaCd";
				$sql .= "      )";

				//基本条件選択からSQL取得
				$sql .= $rstobjCommon->getKihonWhere($params, $db_params, false);

				break;

			// 住居形態×エリアCat2
			case 'x2_2':
				
				//選択されている都道府県から抽出
				$sql .= Apm_Seo::genarateNoticeNewBknPrefSql($params, $db_params);
				
				//基本条件選択からSQL取得
				$sql .= $rstobjCommon->getKihonWhere($params, $db_params, false);
				
				break;
				
			// 住居形態×エリアCat2.5
			case 'x2_2.5':

				//選択されている政令指定都市から抽出
				$sql .= Apm_Seo::genarateNoticeNewBknSeireisiteitosiSql($params, $db_params);
				
				//基本条件選択から建物タイプSQL取得
				$sql .= $rstobjCommon->getKihonWhere($params, $db_params, false);
				
				break;
				
			// 住居形態×こだわりCat1
			case 'x3':

				//基本条件選択から建物タイプSQL取得
				$sql .= $rstobjCommon->getKihonWhere($params, $db_params, false);

				//こだわり条件SQL取得
				$sql .= $rstobjCommon->getKodawariWhere($params, $db_params);

				break;
				
			// エリアCat1×こだわりCat1
			case 'x4_1':
				//選択されている地域から抽出
				$db_params["AreaCd"] = $params["AreaCd"];
				
				$sql .= "AND T03_TODOUFUKEN_CD IN";
				$sql .= "      (SELECT";
				$sql .= "        M01_TODOUFUKEN_CD";
				$sql .= "      FROM M01AREA";
				$sql .= "      WHERE";
				$sql .= "        M01_AREA_CD = :AreaCd";
				$sql .= "      )";

				//こだわり条件SQL取得
				$sql .= $rstobjCommon->getKodawariWhere($params, $db_params);

				break;

			// エリアCat2×こだわりCat1
			case 'x4_2':

				//選択されている都道府県から抽出
				$sql .= Apm_Seo::genarateNoticeNewBknPrefSql($params, $db_params);
				
				//こだわり条件SQL取得
				$sql .= $rstobjCommon->getKodawariWhere($params, $db_params);
								
				break;
				
			// エリアCat2.5×こだわりCat1
			case 'x4_2.5':

				//選択されている政令指定都市から抽出
				$sql .= Apm_Seo::genarateNoticeNewBknSeireisiteitosiSql($params, $db_params);
				
				//こだわり条件SQL取得
				$sql .= $rstobjCommon->getKodawariWhere($params, $db_params);

				break;
				
			// 住居形態×エリアCat1×こだわりCat1
			case 'x5_1':
				//選択されている地域から抽出
				$db_params["AreaCd"] = $params["AreaCd"];
				
				$sql .= "AND T03_TODOUFUKEN_CD IN";
				$sql .= "      (SELECT";
				$sql .= "        M01_TODOUFUKEN_CD";
				$sql .= "      FROM M01AREA";
				$sql .= "      WHERE";
				$sql .= "        M01_AREA_CD = :AreaCd";
				$sql .= "      )";

				//基本条件選択から建物タイプSQL取得
				$sql .= $rstobjCommon->getKihonWhere($params, $db_params, false);

				//こだわり条件SQL取得
				$sql .= $rstobjCommon->getKodawariWhere($params, $db_params);

				break;
				
			// 住居形態×エリアCat2×こだわりCat1
			case 'x5_2':

				//選択されている都道府県から抽出
				$sql .= Apm_Seo::genarateNoticeNewBknPrefSql($params, $db_params);

				//基本条件選択から建物タイプSQL取得
				$sql .= $rstobjCommon->getKihonWhere($params, $db_params, false);

				//こだわり条件SQL取得
				$sql .= $rstobjCommon->getKodawariWhere($params, $db_params);

				break;
				
			// 住居形態×エリアCat2.5×こだわりCat1
			case 'x5_2.5':

				//選択されている政令指定都市から抽出
				$sql .= Apm_Seo::genarateNoticeNewBknSeireisiteitosiSql($params, $db_params);

				//基本条件選択から建物タイプSQL取得
				$sql .= $rstobjCommon->getKihonWhere($params, $db_params, false);

				//こだわり条件SQL取得
				$sql .= $rstobjCommon->getKodawariWhere($params, $db_params);

				break;
				
			default:
				//全エリアから抽出
				$sql .= "";
				break;
		}
*/
		
		return $sql;
	}
	
	/**
	 * 指定政令指定都市から物件情報抽出するWhere句生成
	 * 
	 * @param array $params
	 * @param array $db_params
	 */
	private function genarateNoticeNewBknSeireisiteitosiSql($params, &$db_params) {

		$db_params["PrefCd"] = $params["PrefCd"][0];
		$db_params["SiteitosiCd"] = $params["SiteitosiCd"][0];

		$whereSql  = "";
		$whereSql .= " AND T03_TODOUFUKEN_CD = :PrefCd";
		$whereSql .= " AND T03_SHIKUCHOUSON_CD IN ";
		$whereSql .= "  (";
		$whereSql .= "    SELECT M44_SHIKUCHOUSON_CD";
		$whereSql .= "      FROM M44SITEITOSI_SIKU";
		$whereSql .= "     WHERE M44_SITEITOSI_CD = :SiteitosiCd";
		$whereSql .= "  )";
		
		return $whereSql;
	}
	
	/**
	 * 指定都道府県から物件情報を抽出するWhere句生成
	 * 
	 * @param array $params
	 * @param array $db_params
	 */
	private function genarateNoticeNewBknPrefSql($params, &$db_params) {

		foreach($params["PrefCd"] as $key => $val){
			$db_params['PrefCd_' . $key] = $val;
		}
		
		$whereSql .= "AND T03_TODOUFUKEN_CD IN (";
		foreach($db_params as $key => $val){
			if(substr($key, 0,6) == "PrefCd") {
				$whereSql .= $conmma . ':' . $key ;
				$conmma = ",";
			}
		}
		$whereSql .= "      )";
		
		return $whereSql;
	
	}
	
	/**
	 * 指定した部屋の情報を取得します
	 * 
	 * @param array $params
	 * @param array $db_params
	 */
	private function genarateBknInfoHeyaCdSql($params, &$db_params) {
		
		foreach($params as $key => $val){
			$db_params['HeyaCd_' . $key] = $val["T03_HEYA_CD"];
		}
		
		//SQL生成
    	$loader = new Zend_Application_Module_Autoloader(array(
			'namespace' => 'Rstobi',
			'basePath' => APPLICATION_PATH . '/modules/rstobi',
		));
	
		$bknRecommObj = new Rstobi_Model_BknRecommend();
		$rstobjCommon =new Rstobi_Model_Common();
		
		$sql  = "";
		$sql  = $bknRecommObj->getRecommendSelectPhrase_s();
		$sql .= " FROM T03WEB_HEYA";
		$sql .= " WHERE ";
		$sql .= "  T03_HEYA_CD IN (";
		foreach($db_params as $key => $val){
			if(substr($key, 0,6) == "HeyaCd") {
				$sql .= $conmma . ':' . $key ;
				$conmma = ",";
			}
		}
		$sql .= "      )";
		
		return $sql;
	}

	
	/**
	 * 多次元配列のマージ
	 * 
	 * @param array $arr1
	 * @param array $arr2
	 */
	private function array_marge_x($arr1, $arr2)
	{
		$arr_marge = array();
		foreach($arr1 as $value) {
			$arr_marge[] = $value;
		}
		foreach($arr2 as $value) {
			$arr_marge[] = $value;
		}
		return $arr_marge;
	}	

	/**
	 * 現在の検索条件ブロック（各コントローラから直接呼ばれる）
	 *
	 * @access  public
	 * @param array &$data
	 * @param array $params パラメータ
	 * @param array $meta_data メタデータ
	 * @param array $researchData 再検索データ
	 * @return array SEOブロックデータ
	 */
	public function generateJokenBlock(&$data, $Pattern, $Category, $params, $meta_data)
	{
		// クロスカテゴリでなければ、処理しない
		if (substr($Pattern, 0, 1) != 'x') return;
		
		$SrhKbn = null;
		// 沿線・駅カテゴリ
		if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_ENSENEKI, $meta_data)) {
			$SrhKbn = Apm_Config_Search::SRHKBN_ENSENEKI;
			// 条件を外して探すリンク
			$temp = $params;
			unset($temp['AreaCd']);
			unset($temp['PrefCd']);
			unset($temp['PrefName']);
			unset($temp['RailCd']);
			unset($temp['StCd']);
			if (!empty($temp['TatemonoTypeCd'])) $temp['TatemonoType'] = array_search($temp['TatemonoTypeCd'], Apm_Config_Search::$TATEMONO_SYUBETU_ID_LIST);
			$p = Apm_Bukkenurl::getParamPattern($temp, Apm_Config_Search::SRHKBN_JYUSYO);
			$url  = Apm_Bukkenurl::generateUrlByParameters($temp, $p);
			$data['STATION'][0] = $url;
			
			$temp = array();
			// 沿線・駅Cat1へのリンク作成
			if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_PREFSTR, $meta_data)) {
				$temp['Category'] = 1;
				$temp['PrefCd']   = $params['PrefCd'];
				$temp['PrefName'] = $params['PrefName'];
				$text = Apm_Bukkenurl::getSeoData(Apm_Config_Search::SEOSTR_PREFSTR, $meta_data);
				$url  = Apm_Bukkenurl::generateUrlByParametersStation($temp);
				$data['STATION']['CAT'][] = array('TEXT' => $text, 'URL' => $url);
			}
			// 沿線・駅Cat2へのリンク作成
			if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_ENSENSTR, $meta_data)) {
				$temp['Category'] = 2.5;
				$temp['RailCd']   = $params['RailCd'][0];
				$text = Apm_Bukkenurl::getSeoData(Apm_Config_Search::SEOSTR_ENSENSTR, $meta_data);
				$url  = Apm_Bukkenurl::generateUrlByParametersStation($temp);
				$data['STATION']['CAT'][] = array('TEXT' => $text, 'URL' => $url);
			}
			// 沿線・駅Cat3へのリンク作成
			if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_EKISTR, $meta_data)) {
				$temp['Category'] = 3;
				$temp['StCd']     = $params['StCd'][0];
				$text = Apm_Bukkenurl::getSeoData(Apm_Config_Search::SEOSTR_EKISTR, $meta_data);
				$url  = Apm_Bukkenurl::generateUrlByParametersStation($temp);
				$data['STATION']['CAT'][] = array('TEXT' => $text, 'URL' => $url);
			}
		}
		// エリアカテゴリ（駅優先）
		else if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_AREA, $meta_data)) {
			$SrhKbn = Apm_Config_Search::SRHKBN_JYUSYO;
			$temp = array();
			// エリアCat1へのリンク作成
			if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_AREASTR, $meta_data)) {
				$temp['Category'] = 1;
				$temp['AreaCd']   = $params['AreaCd'];
				$temp['AreaName'] = Apm_Config_Search::$AREA_NAME_CODE_LIST[$params['AreaCd']];
				$text = Apm_Bukkenurl::getSeoData(Apm_Config_Search::SEOSTR_AREASTR, $meta_data);
				$url  = Apm_Bukkenurl::generateUrlByParametersChiiki($temp);
				$data['AREA']['CAT'][] = array('TEXT' => $text, 'URL' => $url);
			}
			// エリアCat2へのリンク作成
			if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_PREFSTR, $meta_data)) {
				$temp['Category'] = 2;
				$temp['PrefCd']   = $params['PrefCd'];
				$temp['PrefName'] = $params['PrefName'];
				$text = Apm_Bukkenurl::getSeoData(Apm_Config_Search::SEOSTR_PREFSTR, $meta_data);
				$url  = Apm_Bukkenurl::generateUrlByParametersChiiki($temp);
				$data['AREA']['CAT'][] = array('TEXT' => $text, 'URL' => $url);
			}
			// エリアCat2.5へのリンク作成
			if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_SITEISTR, $meta_data)) {
				$temp['Category'] = 2.5;
				$temp['SiteitosiCd']   = $params['SiteitosiCd'];
				$temp['SiteitosiName'] = $params['SiteitosiName'];
				$text = Apm_Bukkenurl::getSeoData(Apm_Config_Search::SEOSTR_SITEISTR, $meta_data);
				$url  = Apm_Bukkenurl::generateUrlByParametersChiiki($temp);
				$data['AREA']['CAT'][] = array('TEXT' => $text, 'URL' => $url);
			}
			// エリアCat3へのリンク作成
			if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_CITYSTR, $meta_data)) {
				$temp['Category'] = 3;
				$temp['CityCd']   = substr($params['CityCd'][0],2);
				$text = Apm_Bukkenurl::getSeoData(Apm_Config_Search::SEOSTR_CITYSTR, $meta_data);
				$url  = Apm_Bukkenurl::generateUrlByParametersChiiki($temp);
				$data['AREA']['CAT'][] = array('TEXT' => $text, 'URL' => $url);
			}
			// エリアCat4へのリンク作成
			if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_TOWNSTR, $meta_data)) {
				$temp['Category'] = 4;
				$temp['TownCd']   = substr($params['TownCd'][0],5);
				$text = Apm_Bukkenurl::getSeoData(Apm_Config_Search::SEOSTR_TOWNSTR, $meta_data);
				$url  = Apm_Bukkenurl::generateUrlByParametersChiiki($temp);
				$data['AREA']['CAT'][] = array('TEXT' => $text, 'URL' => $url);
			}
			
			$temp2 = $params;
			// 住居形態パラメータの補正
			if (!empty($temp2['TatemonoTypeCd'])) $temp2['TatemonoType'] = array_search($temp2['TatemonoTypeCd'], Apm_Config_Search::$TATEMONO_SYUBETU_ID_LIST);
			
			// 一つ上のエリアで探すリンク
			if ($temp['Category'] > 1) {
				// 現在階層のパラメータを削除
				if ($temp['Category'] <= 4) {
					unset($temp2['TownCd']);
				}
				if ($temp['Category'] <= 3) {
					unset($temp2['CityCd']);
				}
				if ($temp['Category'] <= 2.5) {
					unset($temp2['SiteitosiCd']);
					unset($temp2['SiteitosiName']);
				}
				if ($temp['Category'] <= 2) {
					unset($temp2['PrefCd']);
					unset($temp2['PrefName']);
				}
				$p = Apm_Bukkenurl::getParamPattern($temp2, $SrhKbn);
				$url  = Apm_Bukkenurl::generateUrlByParameters($temp2, $p);
				$data['AREA'][1] = $url;
			}
			// 条件を外して探すリンク
			unset($temp2['AreaCd']);
			unset($temp2['AreaName']);
			unset($temp2['PrefCd']);
			unset($temp2['PrefName']);
			unset($temp2['SiteitosiCd']);
			unset($temp2['SiteitosiName']);
			unset($temp2['CityCd']);
			unset($temp2['TownCd']);
			$p = Apm_Bukkenurl::getParamPattern($temp2, $SrhKbn);
			$url  = Apm_Bukkenurl::generateUrlByParameters($temp2, $p);
			$data['AREA'][0] = $url;
		}
		
		// 住居形態カテゴリ
		if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_TYPE, $meta_data)) {
			if (empty($SrhKbn)) $SrhKbn = Apm_Config_Search::SRHKBN_JYUSYO;
			// 条件を外して探すリンク
			$temp = $params;
			unset($temp['TatemonoTypeCd']);
			$p = Apm_Bukkenurl::getParamPattern($temp, $SrhKbn);
			$url  = Apm_Bukkenurl::generateUrlByParameters($temp, $p);
			$data['TYPE'][0] = $url;
			// 住居形態Catへのリンク作成
			$temp = array();
			$temp['TatemonoType'] = array_search($params['TatemonoTypeCd'], Apm_Config_Search::$TATEMONO_SYUBETU_ID_LIST);
			$text = Apm_Bukkenurl::getSeoData(Apm_Config_Search::SEOSTR_TYPE, $meta_data);
			$url  = Apm_Bukkenurl::generateUrlByParametersType($temp);
			$data['TYPE'][1] = array('TEXT' => $text, 'URL' => $url);
		}
		
		// こだわりカテゴリ
		if (Apm_Bukkenurl::checkSeoData(Apm_Config_Search::SEOSTR_KODAWARI, $meta_data)) {
			if (empty($SrhKbn)) $SrhKbn = Apm_Config_Search::SRHKBN_JYUSYO;
			// 条件を外して探すリンク
			$temp = $params;
			unset($temp['KodawariId']);
			if (!empty($temp['TatemonoTypeCd'])) $temp['TatemonoType'] = array_search($temp['TatemonoTypeCd'], Apm_Config_Search::$TATEMONO_SYUBETU_ID_LIST);
			$p = Apm_Bukkenurl::getParamPattern($temp, $SrhKbn);
			$url  = Apm_Bukkenurl::generateUrlByParameters($temp, $p);
			$data['KODAWARI'][0] = $url;
			// こだわりCat1へのリンク作成
			$temp = array();
			$temp['Category'] = 1;
			$temp['KodawariId'] = $params['KodawariId'];
			$text = Apm_Bukkenurl::getSeoData(Apm_Config_Search::SEOSTR_KODAWARI, $meta_data);
			$url  = Apm_Bukkenurl::generateUrlByParametersKodawari($temp);
			$data['KODAWARI'][1] = array('TEXT' => $text, 'URL' => $url);
		}
		
	}

	/**
	 * 関連カテゴリブロック（rstdtlから直接呼ばれる）
	 *
	 * @access  public
	 * @param array $rsBukken 物件情報レコードセットの連想配列
	 * @return array SEOブロックデータ
	 */
	public function generateKanrenCategoryBlock($rsBukken)
	{
		$temp = array();
		
		// 沿線・駅
		$temp['station'] = array();
		$pattern  = "station";
		$station  = array();
		for ($i=1; $i<=3; $i++)
		{
			$key = '0'.$i;
			if (!empty($rsBukken['T03_ENSEN_CD'.$key])) {
				if (in_array($rsBukken['T03_ENSEN_CD'.$key], $station)) continue;
				$params = array();
				$params['RailCd'][] = $rsBukken['T03_ENSEN_CD'.$key];
				if ($i == 1) {
					$name = $rsBukken['T03_ENSEN_NAME'];
				} else {
					$name = $rsBukken['T03_ENSEN_NAME'.$key];
				}
				$url  = Apm_Bukkenurl::generateUrlByParameters($params, $pattern, '2');
				$temp['station'][] = array(
						 'name'	=> $name
						,'url'	=> $url
					);
				$station[] = $rsBukken['T03_ENSEN_CD'.$key];
			}
		}
		
		// こだわり
		$temp['kodawari'] = array();
		$pattern  = "kodawari";
		$kodawari = array();
		foreach (Apm_Config_Search::$KODAWARI_ID_TBL_LIST as $key => $val)
		{
			if ($val['cnt'] == 0) {
				// イレギュラー処理
				switch ($key) {
					// 駅徒歩5分
					case "9":
						// 沿線CD<>9999&バス乗車時間=0&徒歩時間<=5
						if ((!empty($rsBukken['T03_ENSEN_CD01']) && $rsBukken['T03_ENSEN_CD01'] != '9999'
							&& (empty($rsBukken['T03_BUS_JYOUSHA']) || $rsBukken['T03_BUS_JYOUSHA'] == '0') && intval($rsBukken['T03_TOHO01']) <= 5)
						 || (!empty($rsBukken['T03_ENSEN_CD02']) && $rsBukken['T03_ENSEN_CD02'] != '9999'
							&& (empty($rsBukken['T03_BUS_JYOUSHA02']) || $rsBukken['T03_BUS_JYOUSHA02'] == '0') && intval($rsBukken['T03_TOHO02']) <= 5)
						 || (!empty($rsBukken['T03_ENSEN_CD03']) && $rsBukken['T03_ENSEN_CD03'] != '9999'
							&& (empty($rsBukken['T03_BUS_JYOUSHA03']) || $rsBukken['T03_BUS_JYOUSHA03'] == '0') && intval($rsBukken['T03_TOHO03']) <= 5)) {
							
							$kodawari[] = $key;
						}
					break;
					
					// 敷金礼金なし
					case "40":
						// 敷金・敷金月数・保証金・保証金月数・礼金・礼金月数・償却金・償却金月数 ALL0
						if ((empty($rsBukken['T03_SHIKIKIN']) || $rsBukken['T03_SHIKIKIN'] == '0')         && (empty($rsBukken['T03_SHIKIKIN_TSUKISUU']) || $rsBukken['T03_SHIKIKIN_TSUKISUU'] == '0')
						 && (empty($rsBukken['T03_HOSHOUKIN']) || $rsBukken['T03_HOSHOUKIN'] == '0')       && (empty($rsBukken['T03_HOSHOUKIN_TSUKISUU']) || $rsBukken['T03_HOSHOUKIN_TSUKISUU'] == '0')
						 && (empty($rsBukken['T03_REIKIN']) || $rsBukken['T03_REIKIN'] == '0')             && (empty($rsBukken['T03_REIKIN_TSUKISUU']) || $rsBukken['T03_REIKIN_TSUKISUU'] == '0')
						 && (empty($rsBukken['T03_SHOUKYAKUKIN']) || $rsBukken['T03_SHOUKYAKUKIN'] == '0') && (empty($rsBukken['T03_SHOUKYAKUKIN_TSUKISUU']) || $rsBukken['T03_SHOUKYAKUKIN_TSUKISUU'] == '0')) {
							
							$kodawari[] = $key;
						}
					break;
				}
			} else if ($val['cnt'] == 1) {
				// 物件情報カラムチェック
				$prm = $val['prm'][0];
				if ($rsBukken[$prm['param']] == $prm['value']) {
					$kodawari[] = $key;
				}
			} else {
				// 2カラム以上のチェック
				$flag = true;
				$ope = $val['ope'];
				if ($ope ==  'OR') {
					$flag = false;
				}
				foreach ($val['prm'] as $value) {
					if ($flag && $rsBukken[$value['param']] != $value['value']) {
						$flag = false;
						break;
					}
					else if (!$flag && $rsBukken[$value['param']] == $value['value']) {
						$flag = true;
						break;
					}
				}
				if ($flag) {
					$kodawari[] = $key;
				}
			}
		}
		if (!empty($kodawari)) {
			$params = array();
			foreach ($kodawari as $id) {
				$params['KodawariId'] = $id;
				$url = Apm_Bukkenurl::generateUrlByParameters($params, $pattern);
				$temp['kodawari'][] = array(
						 'name'	=> Apm_Config_Search::$KODAWARI_ID_STR_LIST[$id]
						,'url'	=> $url
					);
			}
		}
		
		// 住居形態
		$temp['type'] = array();
		$pattern = "type";
		$id      = "";
		switch ($rsBukken['T03_TATEMONO_TYPE_CD']) {
			// 賃貸アパート
			case Apm_Config_Search::TATEMONO_APART:
			case Apm_Config_Search::TATEMONO_HEIGHTS:
			case Apm_Config_Search::TATEMONO_CORP:
			case Apm_Config_Search::TATEMONO_GESYUKU:
				$id = "1";
			break;
			// 賃貸マンション
			case Apm_Config_Search::TATEMONO_MANSION:
				$id = "2";
			break;
			// 戸建て・テラスハウス
			case Apm_Config_Search::TATEMONO_TERRACE:
			case Apm_Config_Search::TATEMONO_TOWN:
			case Apm_Config_Search::TATEMONO_IKKODATE:
			case Apm_Config_Search::TATEMONO_KASIYA:
			case Apm_Config_Search::TATEMONO_NAGAYA:
				$id = "3";
			break;
		}
		if (!empty($id)) {
			$params = array();
			$params['TatemonoType']   = array_search($id, Apm_Config_Search::$TATEMONO_SYUBETU_ID_LIST);
			$params['TatemonoTypeCd'] = $id;
			$temp['type']['name'] = Apm_Config_Search::$TATEMONO_SYUBETU_NAME_LIST[$id];
			$temp['type']['url']  = Apm_Bukkenurl::generateUrlByParameters($params, $pattern);
		}
		
		// データが無い場合は処理停止
		if (empty($temp)) return $temp;
		
		// キャッチコピー生成
		$comment_list = "";
		if (empty($rsBukken['T03_PR01']) && empty($rsBukken['T03_PR02']))
		{
			// PRコメントが無い場合
			$comment_list = $rsBukken['T03_TATEMONO_TYPE'] . " " . $rsBukken['T03_MADORI'];
		}
		else
		{
			// PR文字列連結
			$comment_list = $rsBukken['T03_PR01'] . " " . $rsBukken['T03_PR02'];
			$comment_list = Apm_Util::replaceUnicode($comment_list);
			if(mb_strlen($comment_list) > 15) {
				$comment_list = mb_substr($comment_list, 0, 15) . "…";
			}
		}
		$comment_list = $rsBukken['M01_JYUUSHO'] . " " . $comment_list . "｜[" . $rsBukken['T03_ORIGINAL_HEYA_CD01'] . "-" . $rsBukken['T03_TENPO_CD'] . "]";
		//$comment_list = $rsBukken['M01_JYUUSHO'] . " " . $comment_list . "｜[" . $rsBukken['T03_HEYA_CD'] . "]";
		$temp['comment'] = $comment_list;
		
		return $temp;
	}

	/**
	* タグリンクデータ取得（rstobiから直接呼ばれる）
	*
	* @access	public
	* @param	$rsBukken 物件データ
	* @return	array タグリンクデータ
	*/
	public function getSeoTagLink($rsBukken)
	{
		$seo_data   = array();
		// URL用パラメータ
		$params = array();
		$Pattern = "";
		$Category = "";
		
		if (!empty($rsBukken['T03_TODOUFUKEN_CD'])) {
			// エリアデータを取得
			$model_area = new Search_Model_Selareasearch();
			$area = $model_area->getSimpleArea($rsBukken['T03_TODOUFUKEN_CD']);
			$params['AreaName'] = $area['M01_AREA_ROMAN_NAME'];
			$params['PrefName'] = Apm_Config_Search::$TODOUFUKEN_NAME_CODE_LIST[$rsBukken['T03_TODOUFUKEN_CD']];
			// **都道府県リンク
			$Pattern = "chiiki";
			$Category = "2";
			$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern, $Category);
			$seo_data[] = array(
				'NAME' => Apm_Config_Shop::$PREF_LIST[$rsBukken['T03_TODOUFUKEN_CD']],
				'URL'  => $url
			);
			// **市区町村リンク
			if (!empty($rsBukken['T03_SHIKUCHOUSON_CD'])) {
				$Pattern = "chiiki";
				$Category = "3";
				$params['CityCd'][0] = $rsBukken['T03_SHIKUCHOUSON_CD'];
				$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern, $Category);
				$seo_data[] = array(
					'NAME' => $rsBukken['T03_SHIKUCHOUSON'],
					'URL'  => $url
				);
			}
			// **駅リンク
			if (!empty($rsBukken['T03_EKI_CD01'])) {
				$Pattern = "station";
				$Category = "3";
				$params['StCd'][0] = $rsBukken['T03_EKI_CD01'];
				$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern, $Category);
				$seo_data[] = array(
					'NAME' => $rsBukken['T03_EKI_NAME'],
					'URL'  => $url
				);
			}
		}
		// **こだわりリンク
		$kodawari_list = Apm_Config_Search::$KODAWARI_ID_TBL_LIST;
		// ランダムソート
		$keys = array_keys($kodawari_list);
		shuffle($keys);
		// こだわり条件のチェック
		$kodawari_id = '';
		foreach ($keys as $key) {
			if ($kodawari_list[$key]['cnt'] == 0) {
				// イレギュラー処理
				switch ($key) {
					// 駅徒歩5分
					case "9":
						// 沿線CD<>9999&バス乗車時間=0&徒歩時間<=5
						if ((!empty($rsBukken['T03_ENSEN_CD01']) && $rsBukken['T03_ENSEN_CD01'] != '9999'
							&& (empty($rsBukken['T03_BUS_JYOUSHA']) || $rsBukken['T03_BUS_JYOUSHA'] == '0') && intval($rsBukken['T03_TOHO01']) <= 5)
						 || (!empty($rsBukken['T03_ENSEN_CD02']) && $rsBukken['T03_ENSEN_CD02'] != '9999'
							&& (empty($rsBukken['T03_BUS_JYOUSHA02']) || $rsBukken['T03_BUS_JYOUSHA02'] == '0') && intval($rsBukken['T03_TOHO02']) <= 5)
						 || (!empty($rsBukken['T03_ENSEN_CD03']) && $rsBukken['T03_ENSEN_CD03'] != '9999'
							&& (empty($rsBukken['T03_BUS_JYOUSHA03']) || $rsBukken['T03_BUS_JYOUSHA03'] == '0') && intval($rsBukken['T03_TOHO03']) <= 5)) {
							
							$kodawari_id = $key;
						}
					break;
					
					// 敷金礼金なし
					case "40":
						// 敷金・敷金月数・保証金・保証金月数・礼金・礼金月数・償却金・償却金月数 ALL0
						if ((empty($rsBukken['T03_SHIKIKIN']) || $rsBukken['T03_SHIKIKIN'] == '0')         && (empty($rsBukken['T03_SHIKIKIN_TSUKISUU']) || $rsBukken['T03_SHIKIKIN_TSUKISUU'] == '0')
						 && (empty($rsBukken['T03_HOSHOUKIN']) || $rsBukken['T03_HOSHOUKIN'] == '0')       && (empty($rsBukken['T03_HOSHOUKIN_TSUKISUU']) || $rsBukken['T03_HOSHOUKIN_TSUKISUU'] == '0')
						 && (empty($rsBukken['T03_REIKIN']) || $rsBukken['T03_REIKIN'] == '0')             && (empty($rsBukken['T03_REIKIN_TSUKISUU']) || $rsBukken['T03_REIKIN_TSUKISUU'] == '0')
						 && (empty($rsBukken['T03_SHOUKYAKUKIN']) || $rsBukken['T03_SHOUKYAKUKIN'] == '0') && (empty($rsBukken['T03_SHOUKYAKUKIN_TSUKISUU']) || $rsBukken['T03_SHOUKYAKUKIN_TSUKISUU'] == '0')) {
							
							$kodawari_id = $key;
						}
					break;
				}
			} else if ($kodawari_list[$key]['cnt'] == 1) {
				// 物件情報カラムチェック
				$prm = $kodawari_list[$key]['prm'][0];
				if ($rsBukken[$prm['param']] == $prm['value']) {
					$kodawari_id = $key;
				}
			} else {
				// 2カラム以上のチェック
				$flag = true;
				$ope = $kodawari_list[$key]['ope'];
				if ($ope ==  'OR') {
					$flag = false;
				}
				foreach ($kodawari_list[$key]['prm'] as $value) {
					if ($flag && $rsBukken[$value['param']] != $value['value']) {
						$flag = false;
						break;
					}
					else if (!$flag && $rsBukken[$value['param']] == $value['value']) {
						$flag = true;
						break;
					}
				}
				if ($flag) {
					$kodawari_id = $key;
				}
			}
			if (!empty($kodawari_id)) {
				break;
			}
		}
		// こだわりリンク生成
		if (!empty($kodawari_id)) {
			$Pattern = "kodawari";
			$Category = "1";
			$params['KodawariId'][0] = $kodawari_id;
			$url = Apm_Bukkenurl::generateUrlByParameters($params, $Pattern, $Category);
			$seo_data[] = array(
				'NAME' => Apm_Config_Search::$KODAWARI_ID_STR_LIST[$kodawari_id],
				'URL'  => $url
			);
		}
		// **店舗リンク
		if (!empty($rsBukken['T03_TENPO_CD'])) {
			$url = Apm_Bukkenurl::generateUrlByParametersShopDetail($rsBukken);
			$seo_data[] = array(
				'NAME' => $rsBukken['keisaiTenpo'][0]['M05_TENPO_NAME'],
				'URL'  => $url
			);
		}
		
		return $seo_data;
	}

}
?>